layui select 两级联动

博客介绍了使用form.on监听事件实现两个select框联动的方法。给出了select框的HTML代码,通过简单的ajax请求获取数据填充下拉框,添加layui监听事件,根据一个select框的选择,通过ajax带参数请求后台条件查询方法,更新另一个select框的选项,并进行渲染。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我用的是form.on监听事件,不多说了,直接代码

<div class="layui-form-item">
            <label class="layui-form-label">产品名称</label>
            <div class="layui-input-block">
                <select id="contents" name="content" lay-filter="content">
                </select>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">模具制号</label>
            <div class="layui-input-block">
                <select id="no" name="no" lay-filter="no">
                </select>
            </div>
 </div>

这是两个select框,根据下面这个的选择上面那个自动选择

                      //简单的ajax

                       $.ajax({
                                    url: WEB_CONTEXT+'rest/proWorkRestFul/getList',
                                    type: "post",
                                    dataType : "json",
                                    contentType : "application/json",
                                    async: false,
                                    success: function (result) {
                                       workData = result.data;
                                       for(var x in workData){
                                       strs += '<option value = "' + workData[x].no + '">' + workData[x].no + '</option>'
                                        } 
                                        $("#no").html(strs);
                                        }
                                    });

                         //添加layui的监听事件

                       form.on('select(no)', function(data){ //no是那个lay-filter的值
                                     var nos=$("#no").val();//获得选中的option的值
                                     console.log(nos);//没啥用
                                            $.ajax({
                                            url: WEB_CONTEXT+'rest/proWorkRestFul/getListByCondition?no='+nos,//带参数将这个传到后台条件查询方法里面
                                            type: "post",
                                            dataType : "json",
                                            contentType : "application/json",
                                            async: false,//同步
                                            success: function (result) {
                                               var data = result.data;
                                               console.log(data);
                                               for(var x in data){
                                               str += '<option value = "' + data[x].id + '">' + data[x].content + '</option>'
                                                } 
                                                $("#contents").html(str);
                                                }
                                            });
                                            form.render('select');//最后记得渲染
                                         });

layui是一个轻量级的前端UI库,它提供了一个简单易用的select组件,支持二级联动的功能。二级联动,也称为下拉联动或者级联选择,通常是指当第一个下拉框(一级选区)选择某个选项后,会触发数据请求,更新第二个下拉框(二级选区)的内容,只显示与当前一级选项相关的选项。 实现layui select的二级联动,一般需要以下几个步骤: 1. 首先,在HTML中设置两个联动select元素,并给它们分别绑定id,例如`layui.form.select('firstSelect')`和`layui.form.select('secondSelect')`。 2. 使用layui的表单事件,如`change`,监听一级select的变化,例如`layEvent:firstSelect.change`, 这里`firstSelect`是你的第一级select的ID。 3. 在事件处理函数中,根据一级选区的选择值发送Ajax请求,获取对应级别的选项数组。这个请求通常是异步的,返回的数据格式可以是JSON,包含二级选项的信息。 4. 更新二级select的选项,使用`layui.form.render('secondSelect', {data: secondLevelOptions})`,其中`secondLevelOptions`是你从服务器获取并解析后的二级选项列表。 示例代码可能会像这样: ```html <select name="firstSelect" lay-filter="firstSelect"> <!-- ...一级选项... --> </select> <select name="secondSelect" id="secondSelect"></select> <script> layui.use('form', function(){ var form = layui.form; // 第一级select改变时触发的事件 form.on('select(firstSelect)', function(data){ var firstValue = data.value; // 获取一级选区的值 $.ajax({ url: 'getSecondLevelData', // 假设这是你的API地址 type: 'GET', data: {firstValue: firstValue}, success: function(res){ var secondLevelOptions = res.data; // 解析返回的json数据 form.render('secondSelect', {data: secondLevelOptions}); } }); }); }); </script> ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值