基于layui的下拉列表的数据回显

静态网页+layui渲染

html代码

  <div class="layui-form-item">
    <label class="layui-form-label">选择框</label>
    <div class="layui-input-block">
      <select id="t" name="quiz2">
        <option value="">请选择市</option>
        <option value="2">杭州2</option>
        <option value="3">杭州3</option>
        <option value="4">杭州4</option>
        <option value="5">杭州5</option>
      </select>
    </div>
  </div>

js代码

<script>
    // 遍历select
    $("#t").each(function() {
        // this代表的是<option></option>,对option再进行遍历
        $(this).children("option").each(function() {
            // 判断需要对那个选项进行回显
            if (this.value == 2) {
                console.log($(this).text());
                // 进行回显
                $(this).attr("selected","selected");
            }
        });
    })
</script>

动态网页+layui渲染(级联下拉列表)

后台将第一个下拉列表的数据传到前台

public String getApiInfoByTypePage(@PathVariable String type, Model model, HttpServletRequest request) {
        List<DopApiType> typeList1 = apiService.findApiTypeByPid(1);
        log.error(typeList1);
        model.addAttribute("typeList1", typeList1);
}

前台页面用的是Thymeleaf的遍历将数据加载出来,然后layui自动渲染

<div class="layui-input-inline">
            <select id="quiz1" name="quiz1" lay-filter="quiz1">
                <option value="1">请选择一级服务目录</option>
                <option th:each="list1:${typeList1}" th:value="${list1.typeId}" th:text="${list1.typeName }"></option>
            </select>
        </div>
        <div class="layui-input-inline" lay-filter="inline1">
            <select id="quiz2" name="quiz2" lay-filter="quiz2">
                <option value="0">请选择二级服务目录</option>
            </select>
        </div>

 一级下拉列表的监听事件

 //监听一级服务目录下拉列表的选择时间
        form.on('select(quiz1)', function (data) {
            
            var pId = data.value;// 一级列表的id
            $.post('/getApiTypeByPid', {'pId': pId, '': 2}, function (msg) {// 请求二级列表的数据
                // console.log(msg);
                $('#quiz2').empty();// 将二级列表的内容清空
                for (var i in msg) {// 遍历数据赋值给二级列表的内容
                    var $content = $('<option value="' + msg[i].typeId + '">' + msg[i].typeName + '</option>');
                    $('#quiz2').append($content);
                }
                form.render('select');//  注意:数据赋值完成之后必须调用该方法,进行layui的渲染,否则数据出不来
            });
        });

数据回显的核心逻辑(java的根据目录格式,自行编写)

js部分

// 服务目录的数据回显
        var sesType = [[${type}]];
        var sesType1 = [[${type1}]];// 一级目录id
        var sesStatus = [[${status}]];
        // 一级目录回显
        $("#quiz1").each(function () {// 遍历select
            $(this).children("option").each(function () {// 遍历option
                if (this.value == sesType1) {// 跟后台传过来的id相同就显示selected
                    // console.log("一级目录"+$(this).text());
                    $(this).attr("selected", "selected");
                    $.post('/getApiTypeByPid', {'pId': sesType1, '': 2}, function (msg) {// 根据一级目录的id获取二级目录的信息
                        // console.log(msg);
                        $('#quiz2').empty();// 清空
                        for (var i in msg) {  // 遍历,进行赋值
                            if (msg[i].typeId == sesType) {// 判断要回显的二级目录
                                var $content1 = $('<option value="' + msg[i].typeId + '" selected="selected">' + msg[i].typeName + '</option>');
                                $('#quiz2').append($content1);
                            } else {
                                var $content = $('<option value="' + msg[i].typeId + '">' + msg[i].typeName + '</option>');
                                $('#quiz2').append($content);
                            }

                        }
                        form.render('select');// 注意:一定要调用该方法进行中心渲染,否则数据是显示不出来的
                    });
                }
            });
        });

 

  • 16
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
根据提供的引用内容,使用layui表单select实现数据回显的方法如下: 首先,在html中定义下列表的结构,在每个select标签中添加name属性和lay-filter属性,用于后续的监听事件。 接着,在JavaScript中使用form.on("select")函数监听下列表的选择事件,并根据选择的值进行相应的操作。在数据回显的时候,只需要选择默认第一个value即可。通过设置select标签的value属性为默认值即可实现数据回显。 以下是一个基于layui的下列表数据回显的示例代码: ``` <div class="layui-form-item"> <label class="layui-form-label">设备位置 省</label> <div class="layui-input-inline"> <select name="provinceCode" id="provinceCode" lay-filter="provinceCode"> <!--省份选项--> </select> </div> <label class="layui-form-label">市</label> <div class="layui-input-inline"> <select name="cityCode" id="cityCode" lay-filter="cityCode"> <!--市级选项--> </select> </div> <label class="layui-form-label">区</label> <div class="layui-input-inline"> <select name="districtCode" id="districtCode" lay-filter="districtCode"> <!--区域选项--> </select> </div> </div> ``` ```javascript // layui form select监听事件 form.on("select", function(data){ // 根据data.value进行相应的操作 }); // 数据回显,设置select标签的value属性为默认值 $("#provinceCode").val("省份默认值"); $("#cityCode").val("市级默认值"); $("#districtCode").val("区域默认值"); ``` 通过以上的方法,就可以实现基于layui的下列表数据回显。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [基于layui的下列表数据回显方法](https://download.csdn.net/download/weixin_38677227/12936066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [layui select框 数据回显](https://blog.csdn.net/java__project/article/details/103186402)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值