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 相关文章推荐
javascript iframe中打开文件,并检测iframe存在否
Dec 28 Javascript
js 数值项目的格式化函数代码
May 14 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
Aug 05 Javascript
JavaScript实现复制功能各浏览器支持情况实测
Jul 18 Javascript
JavaScript打印网页指定区域的例子
May 03 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
Jul 17 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
Nov 22 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
Dec 05 jQuery
vue实现简单的MVVM框架
Aug 05 Javascript
详解Vue 如何监听Array的变化
Jun 06 Javascript
JS控制下拉列表左右选择实例代码
May 08 Javascript
vue实现选中效果
Oct 07 Javascript
微信小程序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日历程序
2006/12/06 PHP
php防注
2007/01/15 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
php实现的ping端口函数实例
2014/11/12 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
python 杀死自身进程的实现方法
2019/07/01 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
pycharm实现猜数游戏
2020/12/07 Python
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
自主招生自荐信格式
2013/12/03 职场文书
施工安全责任书
2014/04/14 职场文书
公司离职证明样本
2014/09/13 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
学生会工作感言
2015/08/07 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript
基于Go语言构建RESTful API服务
2021/07/25 Golang
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android