若依框架使用 bootstrap-select 動態從后台加載下拉選項


來源於   https://blog.csdn.net/torpidcat/article/details/96301937

 1 <div class="box-tools pull-left">
 2     <div class="btn-group">
 3         <div class="col-sm-10" id="selectItem">
 4             <select id="itemSelect" name="itemSelect" οnchange="selectedItem()" class="selectpicker" title="全部" data-live-search="true">
 5                 <!--<option value="y" selected>猴子偷桃</option>-->
 6                 <!--<option value="m">八戒吃喝</option>-->
 7             </select>
 8         </div>
 9     </div>
10 </div>

 

 1 <script type="text/javascript">
 2     var itemDataUrl = "http://....../returnJsonData";//選項返回鍵值對集合 json封裝
 3  
 4     //綁定bootstrap-select事件
 5     $('#itemSelect').on('shown.bs.select',function(e){
 6         //console.error("當前元素:"+$('#itemSelect').html());
 7         //console.error("父節點:"+$('#itemSelect').parent().html());
 8         //console.error("父節點下找到搜索文本框所在div:"+$('#itemSelect').parent().find(".bs-searchbox").html());
 9         //console.error("根據類名鎖定文本框:"+$('#itemSelect').parent().find(".bs-searchbox").find("input"));
10         $('#itemSelect').parent().find(".bs-searchbox").find("input").attr('id',"searchParam");//為input增加id屬性
11         //為input綁定鍵盤離開事件,觸發搜索
12         $('#searchParam').keyup(function(){
13             var searchParam = $('#searchParam').val().trim();
14             var data = {
15                 'searchParam':searchParam,"shopId":""
16             }
17             itemData($('#itemSelect'),data);
18         })
19     });
20  
21     //商品
22     function itemData($obj,data) {
23         var html = '';
24         $.post(itemDataUrl, data, function (res) {
25             if (res.code == 200) {
26                 jQuery.each(res.result, function(i, val) {
27                     html += '<option value="' + val.mapKey + '" >' + val.mapValue+ '</option>';
28                 });
29                 $obj.html(html);
30                 //必須加,刷新select
31                 $obj.selectpicker('refresh');
32             } else {
33                 layer.msg(res.msg, {time: 2000});
34             }
35         }, 'json');
36     }
37  
38 </script>

 

這里的js動態加載數據方式參考
https://blog.csdn.net/m0_37355951/article/details/78287278#commentsedit

https://blog.csdn.net/m0_37355951/article/details/78292910

https://blog.csdn.net/w309827333/article/details/82424944

https://blog.csdn.net/wg526125649/article/details/84622527

參考的文章里,一些代碼不適用我的項目,所以適當修改下,大概思路是一樣的,確定當前select所在節點,找到相鄰的bootstrap生成的輸入框所在節點,給輸入框id賦值,實時監控輸入框文本,或者用一個搜索按鈕,獲取后台數據。

 

 

瀏覽器審查元素,查看文本框所在節點,發現在select隔壁的隔壁的下邊,那么js里可以使用jquery的方式找到它,給它設置id,便於后邊監聽它,並根據輸入內容動態加載選項

$('#itemSelect').parent().find(".bs-searchbox").find("input")

 

打印日志

 

后台取數據

 

 


免責聲明!

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



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