版权声明:本文为博主原创文章,欢迎转载,转载请注明出处。觉得此文有用的,不嫌麻烦的,就留个言呐,或者点个赞呐,要是嫌麻烦呢,也麻烦点个赞嘛 https://blog.csdn.net/qq_40147863/article/details/88651963
LayUI 的 select 动态联动
要实现联动效果注意两点:
第一:要可以监听到 select 的 change 事件;
第二:异步加载的内容,需要重新渲染后才可以 正常使用。
html 代码:
<form class="layui-form batchinput-form" action="" id="box-form">
<div class="layui-form-item" >
<div class="layui-input-inline">
<label class="layui-form-label">所在省份:</label>
<div class="layui-input-block" >
<select name="province" id="province" lay-filter="myselect">
<option value="">请选择省份</option>
<#list province as provincelist>
<option value="${provincelist.areaId}">${provincelist.fullname}</option>
</#list>
</select>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-inline">
<label class="layui-form-label">所在城市 :</label>
<div class="layui-input-block">
<select name="City" id="City" lay-filter="myselect2" >
</select>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-inline">
<label class="layui-form-label">所在区域 :</label>
<div class="layui-input-block">
<select name="Area" id="Area" lay-filter="myselect3">
</select>
</div>
</div>
</div>
</form>
js:
layui.use(['layer', 'form',"jquery"], function(){
var layer = layui.layer
,$=layui.jquery
,form = layui.form;
form.on('select(myselect)', function(data){
var areaId=(data.value).replaceAll(",","");
$.ajax({
type: 'POST',
url: '获取数据的url',
data: {"动态参数名":areaId},
dataType: 'json',
success: function(data){
$("#City").html("");
$.each(data, function(key, val) {
var option1 = $("<option>").val(val.areaId).text(val.fullname);
//通过LayUI.jQuery添加列表项
$("#City").append(option1);
form.render('select');
});
$("#City").get(0).selectedIndex=0;
}
});
});
});
1.select 的 chage 监听事件使用
form.on(‘select(myselect)’, function(data){}) 其中 myselect 是 select 的 lay-filter 属性值
2.数据异步加载到 select 的 option 中之后,点击该 select 会发现 layui 的选中效果不起作用,需要使用 form.render(‘select’); 重新渲染一次,就可以正常使用。