Bootstrap-duallistbox动态获取数据
来源于 https://blog.csdn.net/qinshijangshan/article/details/80179602
ajax方式从服务器获取数据,填充到Bootstrap-duallistbox;
配置支持本地(file协议)的Ajax请求:https://www.cnblogs.com/micua/p/chrome-file-protocol-support-ajax.html
Bootstrap-duallistbox ajax请求,参考:https://www.cnblogs.com/hangwei/p/5040866.html
https://www.cnblogs.com/Isabella-CC/p/8006912.html
role.json
1 [ 2 { 3 "roleId":"1", 4 "roleName":"系统管理员" 5 }, 6 { 7 "roleId":"2", 8 "roleName":"董事长" 9 }, 10 { 11 "roleId":"3", 12 "roleName":"董事长助理" 13 }, 14 { 15 "roleId":"4", 16 "roleName":"总经理" 17 }, 18 { 19 "roleId":"5", 20 "roleName":"总经理助理" 21 }, 22 { 23 "roleId":"6", 24 "roleName":"财务-副总" 25 }, 26 { 27 "roleId":"7", 28 "roleName":"部门经理" 29 } 30 ]
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>Bootstrap Dual Listbox</title> 6 <link rel="stylesheet" href="../../public/bootstrap4/css/bootstrap.min.css"> 7 <link rel="stylesheet" type="text/css" href="../../public/bootstrap-duallistbox/bootstrap-duallistbox.min.css"> 8 <script src="../../public/jquery-3.x.min.js"></script> 9 <script src="../../public/bootstrap4/js/bootstrap.min.js"></script> 10 <script src="../../public/bootstrap-duallistbox/jquery.bootstrap-duallistbox.js"></script> 11 12 </head> 13 <body class="container"> 14 <h2>Dynamically Data</h2> 15 16 <div class="row"> 17 <div class="col-md-6"> 18 <select multiple="multiple" name="roleIds" id="roleIds"> 19 </select> 20 </div> 21 </div> 22 23 <script src="./duallistbox.js"></script> 24 25 <script> 26 $(function() { 27 var requestUrl = "role.json"; 28 var reqeustParams = "";//有参数用json格式 29 var selectElement = "#roleIds"; 30 var selectedDataStr = "1,2,4";//选中的option(用过英文逗号隔开;新增时,无选中option) 31 //初始化duallistbox 32 initListBox(requestUrl, reqeustParams, selectElement, 'roleId', 'roleName', selectedDataStr); 33 }); 34 </script> 35 </body> 36 </html>
1 /** 2 * 初始化duallistbox 3 * reqeustParams:查询参数 4 * selectElement:select元素对应属性 5 * optionValue 6 * optionText 7 * selectedDataStr:选中数据,值以,隔开 8 */ 9 function initListBox(url,reqeustParams,selectElement,optionValue,optionText, selectedDataStr) { 10 $.ajax({ 11 type: 'POST',//请求方式 12 url: url,//地址,就是json文件的请求路径 13 data: reqeustParams,//请求参数 14 async: true,//是否异步 15 success: function (data) { 16 var objs = $.parseJSON(data); 17 var selector = $(selectElement)[0]; 18 $(objs).each(function () { 19 var o = document.createElement("option"); 20 o.value = this[optionValue]; 21 o.text = this[optionText]; 22 if ("undefined" != typeof (selectedDataStr) && selectedDataStr != "") { 23 var selectedDataArray = selectedDataStr.split(','); 24 $.each(selectedDataArray, function (i, val) { 25 if (o.value == val) { 26 o.selected = 'selected'; 27 return false; 28 } 29 }); 30 } 31 if(typeof(selector) != "undefined") { 32 selector.options.add(o); 33 } 34 }); 35 36 //渲染dualListbox 37 $(selectElement).bootstrapDualListbox({ 38 moveOnSelect: false, 39 preserveSelectionOnMove: 'all', 40 nonSelectedListLabel: 'Non-selected', 41 selectedListLabel: 'Selected', 42 selectorMinimalHeight: 200, 43 }); 44 }, 45 error: function (e) { 46 alert(e.msg); 47 } 48 }); 49 }
用空常来坐坐
https://www.cnblogs.com/alexgl2008/

浙公网安备 33010602011771号