目前据我所知最好用的 autocomplete 插件就是 jquery-ui 的 autocomplete 以及 devbridge 的 autocomplete 插件。

我最终选择了 devbridge 的 autocomplete 插件,主要是不想引用 jquery-ui 的 css 文件。

官方网址:https://www.devbridge.com/sourcery/components/jquery-autocomplete/

先看一下autocomplete的参数

  • serviceUrl:服务器端的URL或者是返回 Url 字符串的回调函数
  • ajaxSettings:jQuery Ajax 请求的额外配置
  • lookup:查询的数据列表。字符串数组或者对象字面量(格式 { value: 'string', data: any }
  • lookupFilter: function (suggestion, query, queryLowerCase) {} 本地数据查询的过滤函数
  • lookupLimit:查询条数限制,默认值:no limit
  • onSelectfunction (suggestion) {} ,用户选择查询结果后的毁掉函数
  • minChars:触发提示的最小单词数,默认值:1
  • maxHeight:提示列表容器的最大高度,默认值:300
  • deferRequestBy:延迟Ajax请求的毫秒数,默认值:0
  • width:提示容器的宽度,默认值:auto
  • params:参数传递的请求,可选
  • formatResultfunction (suggestion, currentValue) {}
  • delimiter:字符串或正则表达式,分割输入值并将最后一个作为查询词,一般逗号分割
  • zIndex:提示容器的z-index值,默认值:9999
  • type:获取提示的 Ajax 请求方式,默认值:get
  • noCache:是否缓存提示结果,默认值:false
  • onSearchStartfunction (query) {}
  • onSearchCompletefunction (query, suggestions) {}
  • onSearchErrorfunction (query, jqXHR, textStatus, errorThrown) {}
  • onInvalidateSelectionfunction () {},选择提示结果后,如果input的值发生变化则调用函数
  • triggerSelectOnValidInput:如果匹配查询,只要聚焦 input 就触发 onSelect 函数,默认值:true
  • preventBadQueries:默认值:true
  • beforeRenderfunction (container) {} 在展示查询结果之前调用函数
  • tabDisabled:默认值:false
  • paramName:默认值:'query'
  • transformResultfunction(response, originalQuery) {}
  • autoSelectFirst:是否自动填充查询列表的第一项,默认值:false
  • appendTo:查询列表容器被添加到那个元素中,默认值:document.body
  • dataType:服务器返回的数据格式
  • showNoSuggestionNotice:如果查询结果为空是否有提示语,默认值:false
  • noSuggestionNotice:提示语,默认值:No results
  • forceFixPosition:默认值:false
  • orientation:提示容器的垂直位置,默认值:'bottom',可选值'top','auto'
  • groupBy:提示数据对象的属性值

配置参数很多,但是有用的可能就几个。

实现多选的关键参数是 delimiter, onInvalidateSelection , triggerSelectOnValidInput

实际项目中autocomplete的难点在于需要查询结果的索引值并保存到隐藏域中,所以 onInvalidateSelection ,triggerSelectOnValidInput 这两个参数非常关键

示例演示

该演示代码的多选没有删除操作,留给大家一点思考的余地。当然多选的方式不唯一。

关于 devbridge的更多相关文章

  1. 关于 devbridge-autocomplete 插件多选操作的实现方法

    目前据我所知最好用的 autocomplete 插件就是 jquery-ui 的 autocomplete 以及 devbridge 的 autocomplete 插件. 我最终选择了 devbrid ...

  2. jquery.autocomplete 模糊查询 支持分组

    //demo <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <lin ...

  3. github上最全的资源教程-前端涉及的所有知识体系

    前面分享了前端入门资源汇总,今天分享下前端所有的知识体系. 个人站长对个人综合素质要求还是比较高的,要想打造多拉斯自媒体网站,不花点心血是很难成功的,学习前端是必不可少的一个环节, 当然你不一定要成为 ...

  4. 自动完成--autoComplete插件

    js下载地址:https://github.com/devbridge/jQuery-Autocomplete 1.引入js,引入css --start------------------------ ...

  5. Fluent NHibernate other example

    测试用的当前最新版本: sql: --- CREATE TABLE Users ( UserID INT IDENTITY(1,1) PRIMARY KEY, [Name] VARCHAR(50) N ...

  6. csharp: NHibernate and Entity Framework (EF) (object-relational mapper)

    代码生成器: 1. http://www.codesmithtools.com/ 2.https://sourceforge.net/projects/mygeneration/ 3. http:// ...

  7. CruiseControl.NET开篇

    在这里说明一下,我终于踏上了CruiseControl.NET这条不归路了,为什么我会觉得是一条不归路,原因很简单,就是这东西在现在这个阶段已经很久没有在园子里有活跃度了,基本上到了已经可以到了让大家 ...

  8. Entity FrameWork 与 NHibernate

      1 Nhibernate 展示了NHibernate在数据库和用程序之间提供了一个持久层. 应用程序自己提供ADO.NET连接,并且自行管理事务.NHibernate体系结构如图1-51所示.它体 ...

  9. jQuery插件autoComplete使用详解

    安装/需要引入的文件 <script type="text/javascript" src="../js/jquery-1.8.3.min.js.js"& ...

随机推荐

  1. 可编辑表格(Editable Table)

    需求分析 1.单击table的每个cell后,给cell加上一个尺寸相当的input; 2.input后把value传给cell的innerHTML; 3.失焦后删除input. HTML <! ...

  2. spring boot(一):入门

    Spring Boot的优点 Spring Boot 是伴随着 Spring 4.0 诞生的,从字面理解,Boot是引导的意思,因此 Spring Boot 旨在帮助开发者快速搭建 Spring 框架 ...

  3. java用于控制可见性的4个访问修饰符

    仅对本类可见——private 对所有类可见——public 对本包的所有子类可见——protected 对本包可见——默认(很遗憾)不需要修饰符

  4. LintCode 395: First Will Win 2

    LintCode 395: First Will Win 2 题目描述 有 n 个不同价值的硬币排成一条线.两个参赛者轮流从左边依次拿走 1 或 2 个硬币,直到没有硬币为止.计算两个人分别拿到的硬币 ...

  5. bzoj 1072 状压DP

    我们用w[i][j]来表示,i是一个二进制表示我们选取了s中的某些位,j表示这些位%d为j,w[i][j]则表示这样情况下的方案数,那么我们可以得到转移.w[i|(1<<k)][(j*10 ...

  6. Tornado/Python 学习笔记(一)

    1.源代码下载及安装:http://www.tornadoweb.org/en/stable/ 2.python中xmlrpc库官方文档:https://docs.python.org/3/libra ...

  7. 常见的bug

    常见bug 一. Android系统功能测试设计的测试用例: a.对所测APP划分模块 b.详细列出每个模块的功能点(使用Xmind绘制功能图) c.使用等价类划分.边界值.场景法等对各功能点编写测试 ...

  8. udhcpc命令

    要使用网络通讯,所以不可避免的要用到dhcp.理想的网络通讯方式是下面3种都要支持: 1,接入已有网络.这便要求可以作为dhcp客户端. 2,作为DHCP服务器,动态分配IP. 简单说下前2种情况. ...

  9. 不老的神器:安全扫描器Nmap渗透使用指南【转】

    介绍 nmap是用来探测计算机网络上的主机和服务的一种安全扫描器.为了绘制网络拓扑图Nmap的发送特制的数据包到目标主机然后对返回数据包进行分析.Nmap是一款枚举和测试网络的强大工具. 特点 主机探 ...

  10. ubuntu中安装软件包问题 ------有一些软件包无法被安装。如果您用的是 unstable 发行版。。。

    在ubuntu中安装软件包提示 有一些软件包无法被安装.如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态造成的.该版本中可能会有一些您需要的软件包尚未被创建或是它们已被从新 ...