若依框架使用 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