【1.加载layui框架】
这个请移驾 https://www.layui.com 不多讲。
【2.举个例子】
//先给出html代码
<form action='' method='post' class='layui-form'>
//这个是一级
<div class="layui-input-inline">
<select class="layui-select" lay-filter='rep'>
<option value ="">请选择</option>
<option value ="1">1</option>
<option value ="1">2</option>
<option value ="1">3</option>
</select>
</div>
</div>
//这个是二级
<div class="layui-form-item">
<div class="layui-input-inline">
<select class="layui-select" id='act'>
<option value ="">请选择</option>
</select>
</div>
</div>
</form>
再出js代码
form.on('select(rep)',function(data){
//发送一个ajax
$.ajax({
url:'#############',
type:'post',
data:{'no':data.value},
dataType:'json',
success:function(data){
var data=(JSON.parse(data))['data'];
//获得数据更新之前先删除之前的旧数据
$('#act').html('');
//遍历增加option
data.forEach(element => {
$('#act').append('<option value ="'+element['no']+'">活动'+element['no']+'</option>');
});
//表单重新渲染
form.render();
}
});
});
【3.说说注意事项】
1、form.on(‘select(rep)’,function(data)… 这里的select 指的是监听表单 select元素,rep指的是select的 lay-filter的值,lay-filter是layui中的对象选择器类似DOM 中的id=’’ 。
2、 中的 class=‘layui-form’ 是必须的 否则会不起作用!!
3、这点是我之前困惑的点。首先我认为form.render()方法 活动之表单中所有的元素都会刷新,可能会导致之前已经选中的选择项 回归默认值 。 经过测试 render()不会导致这个问题,具体实现原理还没理清楚。如果有明白的亲 给我留言吧 我看到会回复。不明白的也可以问。看到会回复!!
全文结束!感谢!