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 相关文章推荐
使用EXT实现无刷新动态调用股票信息
Nov 01 Javascript
XML、HTML、CSS与JS的区别整理
Feb 18 Javascript
如何高效率去掉js数组中的重复项
Apr 12 Javascript
JavaScript简单获取系统当前时间完整示例
Aug 02 Javascript
jquery操作ID带有变量的节点实例
Dec 07 Javascript
angularjs select 赋值 ng-options配置方法
Feb 28 Javascript
在vue组件中使用axios的方法
Mar 16 Javascript
vue定义全局变量和全局方法的方法示例
Aug 01 Javascript
在小程序中使用Echart图表的示例代码
Aug 02 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
Aug 12 Javascript
vue实现多条件和模糊搜索功能
May 28 Javascript
layui use 定义js外部引用函数的方法
Sep 26 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
PHP环境搭建最新方法
2006/09/05 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
CI框架Session.php源码分析
2014/11/03 PHP
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
jQuery中:input选择器用法实例
2015/01/03 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
建筑专业自荐信范文
2014/01/05 职场文书
新领导上任欢迎词
2014/01/13 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
十佳护士获奖感言
2014/02/18 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
学期个人工作总结
2015/02/13 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
MySQL 四种连接和多表查询详解
2021/07/16 MySQL