let form2; let ctx="${pageContext.request.contextPath}"; $(function(){ layui.config({ base: ctx+'/layui/layuiadmin/' //静态资源所在路径 }).extend({ index: 'lib/index' //主入口模块 }).use(['index','form', 'table','layer'], function(){ layerDom = layui.layer; table = layui.table; form2 = layui.form; // ajax请求获取数据 getData(start,count,true); }); });
getData() 方法核心内容html
function getData(start, count, flag){ var storageId = $('input[name="storageId"]').filter(':checked').val(); if(storageId == "" || storageId == undefined || storageId ==null){ storageId = ""; } $.ajax({ type:"post", url:basePath + "path", data:{ page: start, limit: count, storageCenterId: storageId }, success:function(result){ //解决数据叠加问题 var data = JSON.parse(result); var code = data.code; //0 成功 1失败 if(code == "1"){ // 拼接js到页面 var strlist = ""; storageList.forEach(function(item, index) { var name = item.storageName; var sid = item.storageId; if(index == 0){ strlist = `<li> <label class="clearfix" onclick="changeVideo('${sid}', '${index}')"> <p>${name}</p> <span><input title="默认" checked="checked" value="0" name="storageId" type="radio"><div class="layui-unselect layui-form-radio layui-form-radioed"><i class="layui-anim layui-icon layui-anim-scaleSpring"></i><div>默认</div></div></span> </label> </li>`; } else { strlist += `<li> <label class="clearfix" onclick="changeVideo('${sid}', '${index}')"> <p>${name}</p> <span><input title="默认" value="1" name="storageId" type="radio"><div class="layui-unselect layui-form-radio"><i class="layui-anim layui-icon"></i><div>默认</div></div></span> </label> </li>`; } }); $(".storageList").empty(); $(".storageList").html(strlist); ···· ···· form2.render(); // 最关键的步骤,必定要从新渲染一下页面
解决方法是,在改变html内容以后,必定要用form或table或其它对象,从新渲染一下,调用render()方法,便可。ajax