來源於 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")
打印日志
后台取數據