bootstrap select2插件用ajax来获取和显示数据的实例


Posted in Javascript onAugust 09, 2018

用select2插件,实现以下这个选择框:

bootstrap select2插件用ajax来获取和显示数据的实例

1、html代码

<div class="form-group" style='display:none;' id='preParamGroup'>
	<label for="inputEmail3" class="col-sm-2 control-label">预定义参数</label>
	<div class="col-sm-8">
		<select class="js-states form-control" id="preParamDefine" multiple="multiple" style="width: 100%"></select>
	</div>
</div>

2、js代码

$("#preParamDefine").select2({
	 //data: data,
	placeholder:'请选择',//默认文字提示
	tags: true,//允许手动添加
  	allowClear: true,//允许清空			 
	ajax: {
		url: '/jgwork/param_select',
		type:'GET',
		dataType: 'json',
		data: function(){ return {'projectId':$('#projectSel').val()}},
		processResults: function (data) {
			 return {
				  results: data.result
				 };
		 }
		}
			 
})

用ajax从服务端获取数据,在processResult里来返回数据

3、服务端代码

服务端返回的数据格式如下:

data = [
{ 'text': 'enhancement' ,
 'children':[
 { 'id': 1, 'text': 'bug','parent':'enhancement' }, 
 { 'id': 2, 'text': 'duplicate' ,'parent':'enhancement'},
 { 'id': 3, 'text': 'invalid' ,'parent':'enhancement'},
 { 'id': 4, 'text': 'wontfix' ,'parent':'enhancement'}
  ]
}
]

代码:

proId = request.GET.get('projectId','')
paramList = [param.show_table() for param in paramDefine.objects.filter(proid = proId)]
data = []
index = 1
for item in paramList:
	childList = []
	for i in item['paramValue'].split(','):
		childList.append({
				'id': index,
				'text': i,
				'param': item['paramName']
			}) #生成children字段列表
		index += 1
	data.append({
			'text': item['paramName'],
			'children': childList
		})
return JsonResponse({'result':data})

这里注意,index不能从0开始,不然生成的id有一个为0,会导致这个选项无法选取,因为在select2中id=0有特殊意义

以上这篇bootstrap select2插件用ajax来获取和显示数据的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
setAttribute 与 class冲突解决
Feb 17 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
Jan 10 Javascript
解析URI与URL之间的区别与联系
Nov 22 Javascript
超精准的javascript验证身份证号的具体实现方法
Nov 18 Javascript
jQuery操作基本控件方法实例分析
Dec 31 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
Apr 26 Javascript
jQuery实现区域打印功能代码详解
Jun 17 Javascript
Vue.js实现移动端短信验证码功能
Mar 29 Javascript
微信小程序 自定义消息提示框
Aug 06 Javascript
解决Layui中templet中a的onclick参数传递的问题
Sep 20 Javascript
浅谈react路由传参的几种方式
Mar 23 Javascript
Vue vee-validate插件的简单使用
Jun 22 Vue.js
微信小程序url传参写变量的方法
Aug 09 #Javascript
angular6.x中ngTemplateOutlet指令的使用示例
Aug 09 #Javascript
koa上传excel文件并解析的实现方法
Aug 09 #Javascript
使用layer弹窗和layui表单实现新增功能
Aug 09 #Javascript
vue-cli初始化项目中使用less的方法
Aug 09 #Javascript
video.js 实现视频只能后退不能快进的思路详解
Aug 09 #Javascript
JavaScript面向对象继承原理与实现方法分析
Aug 09 #Javascript
You might like
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
vue组件name的作用小结
2018/05/23 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
python代码过长的换行方法
2018/07/19 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
python实现图片识别汽车功能
2018/11/30 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
Python列表切片常用操作实例解析
2019/12/16 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
学前班教师的自我鉴定
2013/12/05 职场文书
二年级数学教学反思
2014/01/21 职场文书
丑小鸭教学反思
2014/02/03 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
公司运动会策划方案
2014/05/25 职场文书
毕业实习证明(4篇)
2014/10/28 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
小兵张嘎观后感
2015/06/03 职场文书
Python的这些库,你知道多少?
2021/06/09 Python