Select2插件ajax方式加载数据并刷新页面数据回显

今天在优化项目当中,有个要在下拉框中搜索数据的需求;最后选择使用selec2进行开发:

官网:http://select2.github.io/

演示:

准备工作:

  文件需要引入select2.full.js、select2.min.css(4.0.1版本)和jquery.1.8.3及以上

注意:最新版本的select2如果引用的jquery版本较低的话,某些功能无法正常使用。

HTML代码

<select id="c01-select" class="select2" name="search" style="width:200px"></select>

数据要求

var data = [{ id: 0, text: ‘enhancement‘ }, { id: 1, text: ‘bug‘ }, { id: 2, text: ‘duplicate‘ }, { id: 3, text: ‘invalid‘ }, { id: 4, text: ‘wontfix‘ }];

JS代码

$(function () {
            var select2 = $("#c01-select").select2({
                 ajax: {
                 url: "URL",
                 dataType: ‘json‘,
                 delay: 250,
                 data: function (params) {
                     return { eps400: params.term };
                 },
                 processResults: function (data) {
                     return {
                            results: data  //必须赋值给results并且必须返回一个obj,否则会报错;
                          };
                 },
                 cache: true
                 },
                 escapeMarkup: function (markup) { return markup; },
                 minimumInputLength: 1,
                 placeholder: ‘请选择‘,
            })
      //用于数据回显
            var search = "${param.search}";//后台搜索或者编辑返回的数据
            if(‘‘ != search){
                $("#c01-select").append(new Option(search, search, false, true));//第一个参数时id,第二个参数是text
                $("#c01-select").trigger("change");
            }
        })

说明:

1.q: params.term 查询参数(params.term表示输入框中内容,q发生到服务器的参数名;所以这里你可以添加自定义参数,如:stype:‘person‘)

2.processResults中results: data返回数据(返回最终数据给results,如果我的数据在data.res下,则返回data.res。这个与服务器返回json有关)

3.minimumInputLength 最小需要输入多少个字符才进行查询,与之相关的maximumSelectionLength表示最大输入限制。

4.escapeMarkup字符转义处理

5.templateResult返回结果回调function formatRepo(repo){return repo.text},这样就可以将返回结果的的text显示到下拉框里,当然你可以return repo.text+"1";等

6.templateSelection选中项回调function formatRepoSelection(repo){return repo.text}

7.关于返回的 json的格式:select2默认json格式为[{id:1,text:‘text‘},{id:2,text:‘text‘}],新版严格要求这样的格式,当然你可以添加列,如:[{id:1,text:‘text‘,name:‘liu‘}]

原文地址:https://www.cnblogs.com/hhwww/p/10844963.html

时间: 2024-10-06 21:17:56

Select2插件ajax方式加载数据并刷新页面数据回显的相关文章

ajax验证表单元素规范正确与否 ajax展示加载数据库数据 ajax三级联动

一.ajax验证表单元素规范正确与否 以用ajax来验证用户名是否被占用为例 1创建表单元素<input type="text" id="t"> 2在js中用keyup事件来进行操作 3创建ajax格式和内容:格式: $.ajax({ url:"哪一个服务端处理器", data:{"自己起名",所需要传给处理器的数据}, type:"post", dataType:"json"

使用ajax()方法加载服务器数据

使用ajax()方法加载服务器数据 使用ajax()方法是最底层.功能最强大的请求服务器数据的方法,它不仅可以获取服务器返回的数据,还能向服务器发送请求并传递数值,它的调用格式如下: jQuery.ajax([settings])或$.ajax([settings]) 其中参数settings为发送ajax请求时的配置对象,在该对象中,url表示服务器请求的路径,data为请求时传递的数据,dataType为服务器返回的数据类型,success为请求成功的执行的回调函数,type为发送数据请求的

zTree 树形控件 ajax动态加载数据

很久没搞过树形控件了 , 再次接触看官网文档有点没懂,于是在网上找了个代码copy上,但数据是写死的,就想这在用ajax异步取出数据替换,下面是js代码 <SCRIPT type="text/javascript" > //定义全局ztree数据 var zNodes; /* 初始化ztree数据 */ function initZtree(){ $.ajax({ type: "GET", url: "<%=request.getCont

淘宝购物车页面 智能搜索框Ajax异步加载数据

如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区非常的活跃,许多朋友都在不同地方分享了很多优秀的插件.我在相关的网站上找过想实现类似功能的插件,但是没有找到.于是乎,自己动手丰衣足食.自己来搭建智能搜索框下拉列表.当然,如果有类似功能并且常维护Bug的插件,望留言交流. 源码地址: 淘宝购物车页面--PC端和移动端项目实战 首先需要先给大家打一根

Ajax动态加载数据

前言: 1.这个随笔实现了一个Ajax动态加载的例子. 2.使用.net 的MVC框架实现. 3.这个例子重点在前后台交互,其它略写. 开始: 1.控制器ActionResult代码(用于显示页面) /// <summary> /// 电话查询页面 /// </summary> /// <returns></returns> public ActionResult PhoneSearch(string sql) { phoneList=从数据库查询数据: V

Ajax异步加载数据及Redis缓存

针对网页分类条目的动态加载,图为页面的Head部分. //categoryListServlet准备分类数据 ProductService service = new ProductService(); List<Category> categoryList = service.findAllCategoryList(); response.setContentType("text/html; charset=utf-8"); Gson gson = new Gson();

使用ajax异步加载数据

使用ajax异步加载数据 controller为User赋值 @RequestMapping("/a2") public List<User> a2() { List<User> userlist = new ArrayList<User>(); userlist.add(new User("大头儿子", 6, "男")); userlist.add(new User("小头爸爸", 30,

ajax连接数据库加载+三级联动

ajax连接数据库加载 ajax是指一种创建交互式网页应用的网页开发技术. AJAX = 异步JS和XML(标准通用标记语言的子集). AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面. 优点:是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容. 不需要任何浏览器插件,但需要

jquery插件图片延时加载实例详解(转)

jquery插件图片延时加载实例详解 效果预览:http://keleyi.com/keleyi/phtml/image/index.htm 使用方法:1.导入JS插件 <script src="http://keleyi.com/keleyi/pmedia/jquery-1.9.1.min.js" type="text/javascript"></script> <script src="http://keleyi.com/