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


Posted in Javascript onSeptember 24, 2019

静态网页+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');// 注意:一定要调用该方法进行中心渲染,否则数据是显示不出来的
          });
        }
      });
    });

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

Javascript 相关文章推荐
javascript作用域容易记错的两个地方分析
Jun 22 Javascript
JS获取各种浏览器窗口大小的方法
Jan 14 Javascript
jQuery中eq()方法用法实例
Jan 05 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
Dec 24 Javascript
sso跨域写cookie的一段js脚本(推荐)
May 25 Javascript
带有定位当前位置的百度地图前端web api实例代码
Jun 21 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
Nov 10 Javascript
详解网站中图片日常使用以及优化手法
Jan 09 Javascript
bootstrap table操作技巧分享
Feb 15 Javascript
微信小程序之发送短信倒计时功能
Aug 30 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
Feb 27 Javascript
redux处理异步action解决方案
Mar 22 Javascript
Layui动态生成select下拉选择框不显示的解决方法
Sep 24 #Javascript
layui动态渲染生成select的option值方法
Sep 23 #Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
Sep 23 #Javascript
layui-select动态选中值的例子
Sep 23 #Javascript
layui多图上传实现删除功能的例子
Sep 23 #Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
Sep 23 #Javascript
详解从vue-loader源码分析CSS Scoped的实现
Sep 23 #Javascript
You might like
PHP 木马攻击防御技巧
2009/06/13 PHP
并发下常见的加锁及锁的PHP具体实现代码
2010/10/12 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
JS backgroundImage控制
2009/05/19 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
vuex页面刷新导致数据丢失的解决方案
2020/12/10 Vue.js
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
Python的动态重新封装的教程
2015/04/11 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
2020/04/27 HTML / CSS
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
抽样调查项目计划书
2014/04/24 职场文书
空气环保标语
2014/06/12 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS