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 相关文章推荐
动态加载js的几种方法
Oct 23 Javascript
javascript中callee与caller的用法和应用场景
Dec 08 Javascript
JS中的log对象获取以及debug的写法介绍
Mar 03 Javascript
Javascript闭包(Closure)详解
May 05 Javascript
jQuery表单对象属性过滤选择器实例详解
Sep 13 Javascript
微信小程序 数据遍历的实现
Apr 05 Javascript
详解基于vue的移动web app页面缓存解决方案
Aug 03 Javascript
JS从非数组对象转数组的方法小结
Mar 26 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
Apr 23 jQuery
解决vuex数据异步造成初始化的时候没值报错问题
Nov 13 Javascript
JS实现网页时钟特效
Mar 25 Javascript
vue实现防抖的实例代码
Jan 11 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
浅谈PHP封装CURL
2019/03/06 PHP
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
jQuery级联操作绑定事件实例
2014/09/02 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
2016/05/10 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
vue计算属性无法监听到数组内部变化的解决方案
2019/11/06 Javascript
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
python能开发游戏吗
2020/06/11 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
小学教师的个人自我鉴定
2013/10/26 职场文书
写好自荐信的技巧
2013/11/08 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
元旦活动感言
2014/03/08 职场文书
留学推荐信范文
2014/05/10 职场文书
财产分割协议书范本
2014/11/03 职场文书
2019年新郎保证书3篇
2019/10/17 职场文书