解决layui 三级联动下拉框更新时回显的问题
最近接触layui,比较简洁美观的一款ui,但也有很多小坑,记录一下实现省市区下拉三级联动更新回显的问题
<%--监听省份选择--%> form.on('select(uprovinceId)',function(data){ initCityList('change'); });
这里面有个问题就是选择的时候如果请选择的value是“”空字符串,当选择从河北省变到请选择时不会触发这个监听事件
layui.use(['form'],function(){ varform=layui.form; <%--监听省份选择--%> form.on('select(uprovinceId)',function(data){ initCityList('change'); }); <%--监听城市选择--%> form.on('select(ucityId)',function(data){ initDistrictList('change'); }); <%--监听修改提交--%> form.on('submit(update)',function(data){ updateAccount(); form.render(); returnfalse;//阻止表单跳转。如果需要表单跳转,去掉这段即可。 }); }); <%--监听取消按钮--%> $(document).on("click",".cancel",function(){ layer.closeAll("page"); }); $(function(){ <%--初始化省份列表--%> initProvinceList('init'); initCityList('init'); initDistrictList('init'); }); <%--初始化省份列表--%> functioninitProvinceList(flag){ varprovinceId=$("#oldProvinceId").val(); $("#uprovinceId").append(" "+'请选择'+""); $("#udistrictId").append(" "+'请选择'+""); $("#ucityId").append(" "+'请选择'+""); varurl="${ctx}/admin/getProvinceList.action?ranNum="+Math.random(); $.post(url,{},function(data){ varlist=eval(data); for(i=0;i "+name+""); }else{ $("#uprovinceId").append(" "+name+""); } } layui.use(['form'],function(){ varform=layui.form; form.render(); }); }); } <%--初始化城市列表--%> functioninitCityList(flag){ varprovinceId=$("#uprovinceId").val(); varoldProvinceId=$("#oldProvinceId").val(); if(provinceId==-1&&flag=="init"){ provinceId=oldProvinceId; } varcityId=$("#oldCityId").val(); $("#ucityId").empty(); $("#ucityId").append(" "+'请选择'+""); $("#udistrictId").empty(); $("#udistrictId").append(" "+'请选择'+""); varurl="${ctx}/admin/getCityList.action?ranNum="+Math.random(); $.post(url,{provinceId:provinceId},function(data){ varlist=eval(data); alert(list.length+"list长度"); for(i=0;i "+name+""); }else{ $("#ucityId").append(" "+name+""); } } layui.use(['form'],function(){ varform=layui.form; form.render(); }); }); } <%--初始化区列表--%> functioninitDistrictList(flag){ varcityId=$("#ucityId").val(); varoldCityId=$("#oldCityId").val(); if(cityId==-1&&flag=="init"){ cityId=oldCityId; } vardistrictId=$("#oldDistrictId").val(); $("#udistrictId").empty(); $("#udistrictId").append(" "+'请选择'+""); varurl="${ctx}/admin/getDistrictList.action?ranNum="+Math.random(); $.post(url,{cityId:cityId},function(data){ varlist=eval(data); for(i=0;i "+name+""); }else{ $("#udistrictId").append(" "+name+""); } } layui.use(['form'],function(){ varform=layui.form; form.render(); }); }); } 所负责区域