Layui:select下拉框回顯


一.、需求場景分析

  基於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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM