Bootstrap-duallistbox动态获取数据

本文介绍如何通过Ajax从服务器获取数据,并将其填充到Bootstrap-duallistbox中。提供了关于如何配置本地Ajax请求的支持链接,以及Bootstrap-duallistbox进行Ajax请求的相关参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

[
  {
    "roleId":"1",
    "roleName":"系统管理员"
  },
  {
    "roleId":"2",
    "roleName":"董事长"
  },
  {
    "roleId":"3",
    "roleName":"董事长助理"
  },
  {
    "roleId":"4",
    "roleName":"总经理"
  },
  {
    "roleId":"5",
    "roleName":"总经理助理"
  },
  {
    "roleId":"6",
    "roleName":"财务-副总"
  },
  {
    "roleId":"7",
    "roleName":"部门经理"
  }
]

html

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>Bootstrap Dual Listbox</title>
  <link rel="stylesheet" href="../../public/bootstrap4/css/bootstrap.min.css">
  <link rel="stylesheet" type="text/css" href="../../public/bootstrap-duallistbox/bootstrap-duallistbox.min.css">
  <script src="../../public/jquery-3.x.min.js"></script>
  <script src="../../public/bootstrap4/js/bootstrap.min.js"></script>
  <script src="../../public/bootstrap-duallistbox/jquery.bootstrap-duallistbox.js"></script>
  
</head>
<body class="container">
<h2>Dynamically Data</h2>

<div class="row">
  <div class="col-md-6">
    <select multiple="multiple" name="roleIds" id="roleIds">   
	</select>
  </div>
</div>

<script src="./duallistbox.js"></script>

<script>
$(function() {
  var requestUrl = "role.json";
  var reqeustParams = "";//有参数用json格式
  var selectElement = "#roleIds";
  var selectedDataStr = "1,2,4";//选中的option(用过英文逗号隔开;新增时,无选中option)
  //初始化duallistbox
  initListBox(requestUrl, reqeustParams, selectElement, 'roleId', 'roleName', selectedDataStr);
});
</script>
</body>
</html>

duallistbox.js

/** 
 * 初始化duallistbox
 * reqeustParams:查询参数
 * selectElement:select元素对应属性
 * optionValue
 * optionText
 * selectedDataStr:选中数据,值以,隔开
 */
function initListBox(url,reqeustParams,selectElement,optionValue,optionText, selectedDataStr) {
  $.ajax({
	type: 'POST',//请求方式
	url: url,//地址,就是json文件的请求路径
	data: reqeustParams,//请求参数
	async: true,//是否异步
	success: function (data) {
	  var objs = $.parseJSON(data);
	  var selector = $(selectElement)[0];
	  $(objs).each(function () {
		var o = document.createElement("option");
		o.value = this[optionValue];
		o.text = this[optionText];
		if ("undefined" != typeof (selectedDataStr) && selectedDataStr != "") {
		  var selectedDataArray = selectedDataStr.split(',');
		  $.each(selectedDataArray, function (i, val) {
			if (o.value == val) {
			  o.selected = 'selected';
			  return false;
			}
		  });
		}
		if(typeof(selector) != "undefined") {
			selector.options.add(o);
		}
	  });
	  
	  //渲染dualListbox
	  $(selectElement).bootstrapDualListbox({
		moveOnSelect: false,
		preserveSelectionOnMove: 'all',
		nonSelectedListLabel: 'Non-selected',
		selectedListLabel: 'Selected',
		selectorMinimalHeight: 200,
	  });
	},
	error: function (e) {
	  alert(e.msg);
	}
  });
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值