LayUI 下拉框二级联动

一、实现效果

根据检查单位 生成不同的检查人

二、实现步骤

一、界面

        <div class="layui-form-item">
            <label class="layui-form-label">检查单位<i class="red-point">*</i></label>
            <div class="layui-input-block">
                <select id="checkUnit" name="checkUnit"  lay-search="" lay-verify="required" id="dutyUnitSelect" lay-filter="checkUnit">
                    <option value="">选择或搜索选择</option>
                    <c:forEach items="${departList}" var="item">
                        <option value="${item.id}">${item.departname}</option>
                    </c:forEach>
                </select>
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">检查人<i class="red-point">*</i></label>
            <div class="layui-input-block">
                <select id="checkPerson" name="checkPerson"  lay-search="" lay-verify="required" id="checkPersonSelect" lay-filter="checkPerson">
                    <option value="">选择或搜索选择</option>
                </select>
            </div>
        </div>

上面的检查单位的内容为单位数据  ${departList}   option的value是部门id,departname为部门名称,我这里是jsp,其他框架同理 

二、JS代码

引入 xmSelect

layUI监听的是整个form组件, 如果只想监听某一个元素,可以使用事件过滤器lay-filter

当单位被选择的时候,拿着部门id去后台查询,带回来人员信息,然后遍历拼接即可

        form.on('select(checkUnit)',(data)=>{
            let departId = data.value;
            $.ajax({
                url:'tbFineStdController.do?getUserListByDepartId&departId='+departId,
                type:'get',
                success:(data)=>{
                    let res = JSON.parse(data);
                    let userMapList = res.obj;
                    $("#checkPerson").empty();
                    $.each(userMapList,function(index,item){
                         $("#checkPerson").append("<option value="+item.value+">"+item.name+"</option>");
                    });
                    form.render("select");
                }
            })
        })

部分后台代码

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
layui 中实现下拉框二级联动比较简单,你可以通过监听第一个下拉框的 change 事件,在事件回调函数中动态加载第二个下拉框的数据。 首先,需要在页面中引入 layui 的相关资源文件。然后,定义两个 select 元素,分别代表第一个和第二个下拉框。 ```html <!-- 引入 layui 的相关资源文件 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layui@2.5.7/dist/css/layui.css"> <script src="https://cdn.jsdelivr.net/npm/layui@2.5.7/dist/layui.js"></script> <!-- 定义第一个下拉框 --> <select id="select1" lay-filter="select1"> <option value="">请选择</option> <option value="1">选项1</option> <option value="2">选项2</option> <option value="3">选项3</option> </select> <!-- 定义第二个下拉框 --> <select id="select2" lay-filter="select2"> <option value="">请选择</option> </select> ``` 接下来,初始化 layui 并监听第一个下拉框的 change 事件。 ```javascript <script> layui.use(['form'], function(){ var form = layui.form; // 监听第一个下拉框的 change 事件 form.on('select(select1)', function(data){ var value = data.value; // 获取选中的值 // 根据选中值加载第二个下拉框的数据 loadSelect2Data(value); }); // 加载第二个下拉框的数据 function loadSelect2Data(value) { // 根据选中值发送异步请求获取数据 // 假设根据选中值 value 获取到的数据为 data var data = [ {value: '11', text: '选项11'}, {value: '12', text: '选项12'}, {value: '13', text: '选项13'} ]; var select2 = document.getElementById('select2'); select2.innerHTML = ''; // 清空第二个下拉框的选项 // 动态添加选项 data.forEach(function(item){ var option = document.createElement('option'); option.value = item.value; option.innerText = item.text; select2.appendChild(option); }); // 重新渲染第二个下拉框 form.render('select'); } }); </script> ``` 这样,当第一个下拉框的选中值发生改变时,就会触发 change 事件回调函数,动态加载第二个下拉框的数据。请根据实际需求修改 loadSelect2Data 函数中的异步请求部分,以获取正确的数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值