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

前端之家收集整理的这篇文章主要介绍了基于layui的下拉列表的数据回显方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

静态网页+layui渲染

HTML代码

  1. <div class="layui-form-item">
  2. <label class="layui-form-label">选择框</label>
  3. <div class="layui-input-block">
  4. <select id="t" name="quiz2">
  5. <option value="">请选择市</option>
  6. <option value="2">杭州2</option>
  7. <option value="3">杭州3</option>
  8. <option value="4">杭州4</option>
  9. <option value="5">杭州5</option>
  10. </select>
  11. </div>
  12. </div>

js代码

  1. <script>
  2. // 遍历select
  3. $("#t").each(function() {
  4. // this代表的是<option></option>,对option再进行遍历
  5. $(this).children("option").each(function() {
  6. // 判断需要对那个选项进行回显
  7. if (this.value == 2) {
  8. console.log($(this).text());
  9. // 进行回显
  10. $(this).attr("selected","selected");
  11. }
  12. });
  13. })
  14. </script>

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

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

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

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

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

一级下拉列表的监听事件

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

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

js部分

  1. // 服务目录的数据回显
  2. var sesType = [[${type}]];
  3. var sesType1 = [[${type1}]];// 一级目录id
  4. var sesStatus = [[${status}]];
  5. // 一级目录回显
  6. $("#quiz1").each(function () {// 遍历select
  7. $(this).children("option").each(function () {// 遍历option
  8. if (this.value == sesType1) {// 跟后台传过来的id相同就显示selected
  9. // console.log("一级目录"+$(this).text());
  10. $(this).attr("selected","selected");
  11. $.post('/getApiTypeByPid',{'pId': sesType1,function (msg) {// 根据一级目录的id获取二级目录的信息
  12. // console.log(msg);
  13. $('#quiz2').empty();// 清空
  14. for (var i in msg) { // 遍历,进行赋值
  15. if (msg[i].typeId == sesType) {// 判断要回显的二级目录
  16. var $content1 = $('<option value="' + msg[i].typeId + '" selected="selected">' + msg[i].typeName + '</option>');
  17. $('#quiz2').append($content1);
  18. } else {
  19. var $content = $('<option value="' + msg[i].typeId + '">' + msg[i].typeName + '</option>');
  20. $('#quiz2').append($content);
  21. }
  22.  
  23. }
  24. form.render('select');// 注意:一定要调用方法进行中心渲染,否则数据是显示不出来的
  25. });
  26. }
  27. });
  28. });

以上这篇基于layui的下拉列表的数据回显方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

猜你在找的JavaScript相关文章