jesstite中jsp页面使用js生成html的模板——addRow()和delRow()

最近在jeesite项目中遇到需要在当前jsp页面动态生成html模板,于是出现各种坑,所以事后总结了一下,希望小伙伴们少走弯路哦。
我就直接贴代码了
js定义html模板

<script type="text/template" id="curriculumOrderDetailTpl">//<!--
						<tr id="curriculumOrderDetailList{{idx}}">
							<td class="hide">
								<input id="curriculumOrderDetailList{{idx}}_id" name="curriculumOrderDetailList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
								<input id="curriculumOrderDetailList{{idx}}_delFlag" name="curriculumOrderDetailList[{{idx}}].delFlag" type="hidden" value="0"/>
							</td>
							<td>
								<input id="curriculumOrderDetailList{{idx}}_schoolInfo" name="curriculumOrderDetailList[{{idx}}].schoolInfo.id" type="text" value="{{row.schoolInfo.schoolName}}" maxlength="64" class="input-small "/>
							</td>
							
							<td>
								<input id="curriculumOrderDetailList{{idx}}_goodId" name="curriculumOrderDetailList[{{idx}}].goodId" type="text" value="{{row.goodId}}" maxlength="64" class="input-small "/>
							</td>
							<td>
								<input id="curriculumOrderDetailList{{idx}}_curriculumInfo" name="curriculumOrderDetailList[{{idx}}].curriculumInfo.id" type="text" value="{{row.curriculumInfo.curriculumName}}" maxlength="64" class="input-small "/>
							</td>
							<td>
								<input id="curriculumOrderDetailList{{idx}}_curriculumName" name="curriculumOrderDetailList[{{idx}}].curriculumName" type="text" value="{{row.curriculumName}}" maxlength="255" class="input-small "/>
							</td>
							
							<td>
								<input id="curriculumOrderDetailList{{idx}}_curriculumMenberPrice" name="curriculumOrderDetailList[{{idx}}].curriculumMenberPrice" type="text" value="{{row.curriculumMenberPrice}}" class="input-small "/>
							</td>
							<td>
								<input id="curriculumOrderDetailList{{idx}}_totalCurriculumNumber" name="curriculumOrderDetailList[{{idx}}].totalCurriculumNumber" type="text" value="{{row.totalCurriculumNumber}}" maxlength="11" class="input-small  digits"/>
							</td>
							<td>
								<c:forEach items="${fns:getDictList('curriculum_state')}" var="dict" varStatus="dictStatus">
									<span><input id="curriculumOrderDetailList{{idx}}_curriculumState${dictStatus.index}" name="curriculumOrderDetailList[{{idx}}].curriculumState" type="radio" value="${dict.value}" data-value="{{row.curriculumState}}"><label for="curriculumOrderDetailList{{idx}}_curriculumState${dictStatus.index}">${dict.label}</label></span>
								</c:forEach>
							</td>
							<td>
								<input id="curriculumOrderDetailList{{idx}}_refundMoney" name="curriculumOrderDetailList[{{idx}}].refundMoney" type="text" value="{{row.refundMoney}}" class="input-small "/>
							</td>
							<td>
								<input id="curriculumOrderDetailList{{idx}}_sort" name="curriculumOrderDetailList[{{idx}}].sort" type="text" value="{{row.sort}}" class="input-small required"/>
							</td>
							<td>
								<textarea id="curriculumOrderDetailList{{idx}}_remarks" name="curriculumOrderDetailList[{{idx}}].remarks" rows="4" maxlength="255" class="input-small ">{{row.remarks}}</textarea>
							</td>
							<shiro:hasPermission name="order:curriculumOrder:edit"><td class="text-center" width="10">
								{{#delBtn}}<span class="close" onclick="delRow(this, '#curriculumOrderDetailList{{idx}}')" title="删除">&times;</span>{{/delBtn}}
							</td></shiro:hasPermission>
						</tr>//-->
            </script>
            

addRow()添加行方法

  function addRow(list, idx, tpl, row) {
            $(list).append(Mustache.render(tpl, {
                idx: idx, delBtn: true, row: row
            }));
            $(list + idx).find("select").each(function () {
                $(this).val($(this).attr("data-value"));
            });
            $(list + idx).find("input[type='checkbox'], input[type='radio']").each(function () {
                var ss = $(this).attr("data-value").split(',');
                for (var i = 0; i < ss.length; i++) {
                    if ($(this).val() == ss[i]) {
                        $(this).attr("checked", "checked");
                    }
                }
            });
        }

delRow()删除行方法

 function delRow(obj, prefix) {
            var id = $(prefix + "_id");
            var delFlag = $(prefix + "_delFlag");
            if (id.val() == "") {
                $(obj).parent().parent().remove();
            } else if (delFlag.val() == "0") {
                delFlag.val("1");
                $(obj).html("&divide;").attr("title", "撤销删除");
                $(obj).parent().parent().addClass("error");
            } else if (delFlag.val() == "1") {
                delFlag.val("0");
                $(obj).html("&times;").attr("title", "删除");
                $(obj).parent().parent().removeClass("error");
            }
        }

js中代码

<script type="text/javascript">
                var curriculumOrderDetailRowIdx = 0,
                    curriculumOrderDetailTpl = $("#curriculumOrderDetailTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");
                $(document).ready(function () {
                    var data = ${fns:toJson(curriculumOrder.curriculumOrderDetailList)};/* 获取订单详情集合列表并转换为json字符串 */
                    for (var i = 0; i < data.length; i++) {
                        addRow('#curriculumOrderDetailList', curriculumOrderDetailRowIdx, curriculumOrderDetailTpl, data[i]);
                        curriculumOrderDetailRowIdx = curriculumOrderDetailRowIdx + 1;
                    }	
                });
            </script>

需要注意的是addRow()中参数代表的意思!!!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值