layui下拉框二级数据联动(select内容动态获取数据 二级联动)layui监听下拉框选择

layui二级联动

layui 第一个下拉框动态获取数据,选取第一个下拉框数据后,下一个下拉框根据前面选择的数据 后台动态 联动填充数据

HTML代码如下

<form class="layui-form" action="">
    <div class="layui-input-inline from-ses" style="width: 140px;">
      <select name="quiz1"id="quiz1"lay-filter="quiz1">
        <option value="">一级分类</option>
        <option value="灾害数据" >灾害数据</option>
        <option value="新能源">新能源</option>
      </select>
    </div>
    <div class="layui-input-inline from-ses">
      <select name="quiz2" id="quiz2">
        <option value="">二级分类</option>
        <option value="电网覆冰监测">电网覆冰监测</option>
        <option value="电网覆冰预测预警" >电网覆冰预测预警</option>
        <option value="电网舞动监测">电网舞动监测</option>
        <option value="电网舞动预测预警">电网舞动预测预警</option>
        <option value="电网山火检测">电网山火检测</option>
        <option value="电网山火预测预警">电网山火预测预警</option>
      </select>
    </div>
 </form>

js代码如下

layui.use('form', function(){
  var form = layui.form;
  $.ajax({
      url: "json/menu.json",
      type: "post",
      dataType: "json",
      success: function(datas) {
          datas=datas.menu;
          if(datas.length>0){
              $("#quiz1").empty();
              $("#quiz1").append("<option value=''>一级分类</option>");
              for(var i=0;i<datas.length;i++){
                  var item=datas[i];
                  $("#quiz1").append("<option value="+item+">"+item+"</option>");
              }
          }else {
              $("#quiz1").empty();
              $("#quiz1").append("<option value=''>一级分类</option>");
          }
          form.render("select");
      }
  });
    form.on('select(quiz1)', function(data){
        var value = data.value
        $.ajax({
            url: "json/menu2.json?va="+value,
            type: "post",
            dataType: "json",
            success: function(datas) {
                datas=datas.menu;
                if(datas.length>0){
                    $("#quiz2").empty();
                    $("#quiz2").append("<option value=''>更改后的select</option>");
                    for(var i=0;i<datas.length;i++){
                        var item=datas[i];
                        $("#quiz2").append("<option value="+item+">"+item+"</option>");
                    }
                }else {
                    $("#quiz2").empty();
                    $("#quiz2").append("<option value=''>a</option>");
                }
                form.render("select");
            }
        });
    })


})
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
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 函数中的异步请求部分,以获取正确的数据

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值