一.、需求场景分析

  基于Thymeleaf模板下的layui下选框回显。

二、获得一个Layui标配的下拉框,我们需要在html中填写的内容如下

<div class="layui-form-item">
<label class="layui-form-label"><span class="color-red">* </span>发送对象:</label>
<div class="layui-input-inline">
<select id="edit_exam_school">
<option value="">请选择</option>
<option value="1">华南理工大学大学城</option>
<option value="2">华南理工大学五山校区</option>
<option value="3">中山大学珠海校区</option>
<option value="4">中山大学大学城校区</option>
</select>
</div>
</div>

  layui对以上html的渲染结果如何?

此处select可供选择的元素是通过jquery从后台数据获得的,需要根据动态结果决定选择哪一个。分析一下渲染结果的结构,得到dom树如下:

发现在layui-input-inline之下除了select之外又多了个layui-form-select的div。该div包含layui-select-title和dl两个孩子元素,select的选择事件可以通过点击dl下某个确定的dd元素实现。

三、如何实现自动选择?

通过以上的分析结果可以得知,我们只要拿到自己想要选择的内容所在的dd元素并对它触发点击事件,即可实现select加载时自动选择操作。

1.第一种方法(推荐)

if('[[${client.constomerStatus}]]'!=''){
  //拿到后台select选择的value数据并转换成数字类型
var constomerStatus=parseInt('[[${client.constomerStatus}]]');
  //首先需要使用lay-value来确定需要设置哪个元素自动选择
var select = 'dd[lay-value=' + constomerStatus + ']';
  //触发点击事件,实现自动选择
$('#edit_exam_school).siblings("div.layui-form-select").find('dl').find(select).click();
}

2.根据第一种方法可以衍生出第二种(好像没卵用)

// 遍历select
$("#edit_exam_school").each(function() {
  //this代表的是<option></option>,对option再进行遍历
  $(this).children("option").each(function() {
    // 判断需要对那个选项进行回显
    if (this.value == parseInt('[[${client.constomerStatus}]]')) {
      console.log($(this).text());
      // layui回显
      var select = 'dd[lay-value=' + this.value + ']';
      $('#edit_exam_school').siblings("div.layui-form-select").find('dl').find(select).click();
    }
  });
})

  

 

参考链接:https://blog.csdn.net/qq_33594380/article/details/79438026

  第二种写法来源:https://blog.csdn.net/zpf_940810653842/article/details/83788782

Layui:select下拉框回显的更多相关文章

  1. vue 运用ElementUI,做select下拉框回显

    第一.加载的顺序,应该先加载下拉框要选择的数据,然后在通过编辑查询数据后回显. 第二.要保证select下拉的ID和v-model里边的id保持一致. 第三.elementUI就会自动的将数据回显了. ...

  2. JS 实现下拉框回显

    JS 实现下拉框回显 学习内容: 需求 总结: 学习内容: 需求 用 JS 实现下拉框回显 实现代码 <!DOCTYPE html> <html lang="en" ...

  3. layui select 下拉框 级联 动态赋值 与获取选中值

    //下拉框必须在 class="layui-form" 里 不然监听事件没有作用 <div class="layui-form" > <div ...

  4. LAYUI select 下拉框得高度

    页面下得select 框 在css页面加样式 .layui-form-select dl {    max-height: 152px;}

  5. Layui select下拉框改变之 change 监听事件(转)

    在layui中使用 jquery 触发select 的 change事件无效 使用layui.use监听select事件 <select lay-filter="demo" ...

  6. LayUI中select下拉框选中触发事件

    代码: var form = layui.form, layer = layui.layer; // 监听 $(document).ready(function() { // select下拉框选中触 ...

  7. layui的select下拉框太长被遮挡了的解决办法

    layui的select下拉框太长采用滚动条的形式出现,可以给select的dl加一个最大高度,具体的效果如下图 .layui-form-select dl { max-height:160px; }

  8. layui给select下拉框赋值

    转: layui给select下拉框赋值 layui给select下拉框赋值 //重新渲染表单函数 function renderForm() { layui.use('form', function ...

  9. javascript遍历select下拉框判断其中值是否与指定值相等

    用jquery多了,就忘了原生的js是如何写的了,还需要多加巩固. 需求:jsp回显一select下拉框.选中指定值. 用户点击修改 该select进行已有值回显.有两种解决方法 一.js中获取用户的 ...

随机推荐

  1. React项目打包并部署到 Github 展示预览效果

    React项目打包并部署到 Github 展示预览效果 当开发者模式结束,准备打包的时进行以下步骤: 在package.json配置文件中加一句: "homepage": &quo ...

  2. [python]Pytest+selenium+git+jenkins持续集成

    1安装pytest框架 &pip install pytest   #pytest &pip install pytest-html  #pytest html测试报告 2.工程介绍 ...

  3. java语言方法中定义final类型的入参有什么用意?

    无论参数是基本数据类型,还是引用数据类型,只要加了final,不好意思,该参数不可以再赋值(实参传进来给形参,就相当于初始化完成).可以防止在方法里面不小心重新赋值,造成一些不必要的麻烦!!!参考:h ...

  4. Celery Received unregistered task of type

    celery -A proj worker --loglevel=info 这个错误原因在于proj这里没有包含对应的task, 可以在这里导入需要的task即可

  5. [luogu5344]逛森林

    由于没有删边操作,可以先建出整棵森林,之后再用并查集判断是否连通,若连通必然与最后的森林相同 但如果用树链剖分+线段树的形式来优化建图,更具体如下: 建立两颗线段树,左边从儿子连向父亲,右边从父亲连向 ...

  6. 【JavaSE】类与类的关系--UML

    类(对象/接口)之间的关系 -- UML类图展现 2019-07-14  14:37:19  by冲冲 在面向对象程序设计时,类与类之间的关系主要分为:继承,实现,依赖,关联,聚合,组合等6种关系. ...

  7. 从零开始学Kotlin第五课

    函数式编程入门: package EL fun main(args: Array<String>) { var names= listOf<String>("tom& ...

  8. Python+selenium之多窗口,句柄

  9. Linux服务器I/O性能分析-2

    一.如何正确分析IO性能 1.1 BLKTRACE分析IO性能 之前的文章已经说明,要是系统发生I/O性能问题,我们常用的命令是无法精确定位问题(内核I/O调度器消耗的时间和硬件消耗的时间,这个不能作 ...

  10. Linux命令行好玩的命令

    0.cal 2019  #输出日历并显示今天是哪一天 1.命令"date",显示系统的当前日期和时间: 2.命令"date 040100002016",屏幕显示 ...