目前据我所知最好用的 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
  • onSelect: function (suggestion) {} ,用户选择查询结果后的毁掉函数
  • minChars: 触发提示的最小单词数,默认值:1
  • maxHeight: 提示列表容器的最大高度,默认值:300
  • deferRequestBy: 延迟Ajax请求的毫秒数,默认值:0
  • width: 提示容器的宽度,默认值:auto
  • params: 参数传递的请求,可选
  • formatResult: function (suggestion, currentValue) {}
  • delimiter: 字符串或正则表达式,分割输入值并将最后一个作为查询词,一般逗号分割
  • zIndex: 提示容器的z-index值,默认值:9999
  • type: 获取提示的Ajax请求方式,默认值:get
  • noCache: 是否缓存提示结果,默认值:false
  • onSearchStart: function (query) {}
  • onSearchComplete: function (query, suggestions) {}
  • onSearchError: function (query, jqXHR, textStatus, errorThrown) {}
  • onInvalidateSelection : function () {},选择提示结果后,如果input的值发生变化则调用函数
  • triggerSelectOnValidInput: 如果匹配查询,只要聚焦input就触发onSelect函数,默认值:true
  • preventBadQueries: 默认值:true
  • beforeRender: function (container) {} 在展示查询结果之前调用函数
  • tabDisabled: 默认值:false
  • paramName: 默认值:'query'
  • transformResult: function(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 这两个参数非常关键

Demo

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

See the Pen autocomplete by Zongbin Niu (@nzbin) on CodePen.

关于 devbridge-autocomplete 插件多选操作的实现方法的更多相关文章

  1. 原生js实现autocomplete插件

    在实际的项目中,能用别人写好的插件实现相关功能是最好不过,为了节约时间成本,因为有的项目比较紧急,没充分时间让你自己来写,即便写了,你还要花大量时间调试兼容性.但是出于学习的目的,你可以利用闲暇时间, ...

  2. Jquery autocomplete插件的使用

    简单用法: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ...

  3. JS实战 · 复选框全选操作

    思路: 1.获取被选中checkbox,通过checked属性的状态完成: 2.获取被选中的checkbox的value值: 3.求所有value的和sum: 4.定义span区域存储和sum:   ...

  4. jquery autocomplete插件

    jquery autocomplete插件 https://goodies.pixabay.com/jquery/auto-complete/demo.html autocomplete-table ...

  5. Android在listview添加checkbox实现单选多选操作问题(转)

    转自:http://yangshen998.iteye.com/blog/1310183 在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作.表面上 ...

  6. AngularJs 简单实现全选,多选操作

    很多时候我们在处理CURD(增删改查)的时候需要实现批量操作数据,这时候就必须使用多选操作. Angular 中实现如下(当然还有很多种比笔者写的更好的方法,这里只是简单的实现.) demo 演示地址 ...

  7. C#中使用JQueryUI中Autocomplete插件

    服务器端后台代码: 1 private string GetModelNames() { 2 return @"[ 3 { 4 'value': 'jquery', 5 'label': ' ...

  8. GridControl表头全选操作实现之最优方法

    突然发现很久没有写博客了. 昨天整了个Windows Live Writer 就为了以后好好写写博客. 所以,开始咯. 为了积累,也为了分享. 之前在博客园中看到一篇文章:<Winform分页控 ...

  9. ListView多选操作模式详解CHOICE_MODE_MULTIPLE与CHOICE_MODE_MULTIPLE_MODAL

    这篇文章我们将详细的介绍如何实现ListView的多选操作,文中将会纠正在使用ListViewCHOICE_MODE_MULTIPLE或者CHOICE_MODE_MULTIPLE_MODAL时容易犯的 ...

随机推荐

  1. CSS 3学习——animation动画

    以下内容根据官方文档翻译以及自己的理解整理. 1.  介绍 本方案介绍动画(animations).通过动画,开发者可以将CSS属性值的变化指定为一个随时间变化的关键帧(keyframes)的集合.在 ...

  2. FullCalendar应用——整合农历节气和节日

    FullCalendar用来做日程管理功能非常强大,但是唯一不足的地方是没有将中国农历历法加进去,今天我将结合实例和大家分享如何将中国农历中的节气和节日整合到FullCalendar中,从而增强其实用 ...

  3. 关于DDD的学习资料汇总

    DDD(Domain-Driven Design)领域驱动设计,第一次看到DDD是在学习ABP时,在其中的介绍中看到的.what,DDD是个什么鬼,我不是小白,是大白,没听过.于是乎,度娘查查查,找到 ...

  4. document.compatMode

    在我电脑屏幕上显示的 电脑是 1920*1080这是在document.compatMode:css1Compat模式 window.screen.availWidth 1920 window.scr ...

  5. BI分析受阻?FineBI推出SPA螺旋式分析新功能!

    过去,企业级的数据分析通常会有这么几种场景,业务部门托信息部门分析数据,结果报表一出,唇枪舌剑争论你我高低,数据不准,指标不对.信息部门欠缺业务概念,业务部门不懂技术逻辑,数据分析之路,暂时搁浅. 后 ...

  6. HTML5游戏源码 飞翔的字母 可自定义内容

    相信大家都玩过飞翔的小鸟吧,当然,可能已经有很多人因为这个游戏砸了不少手机.吼吼. 废话不多说,回到主题,源码如下. 博客园上传空间大小有限制,没法上传了,需要打包源码的朋友们请留言邮箱地址.当然还有 ...

  7. Oracle:一个用户操作多个表空间中表的问题(转)

    原文地址:http://blog.csdn.net/shmiloy001/article/details/6287317 首先,授权给指定用户. 一个用户的默认表空间只能有一个,但是你可以试下用下面的 ...

  8. Linux下高cpu解决方案

    昨天搞定了一个十万火急的issue,客户抱怨产品升级后系统会变慢和CPU使用率相当高,客户脾气很大,声称不尽快解决这个问题就退货,弄得我们 R&D压力很大,解决这个issue的任务分给了我,客 ...

  9. 在ASP.NET MVC 4 on Mono中使用OracleClient in CentOS 6.x的问题记录

    在ASP.NET MVC 4 on Mono中使用OracleClient in CentOS 6.x的问题记录 前言 最近有个Web项目,业务功能不复杂,但是这个客户(某政府部门)有两个硬性要求:1 ...

  10. mono for android学习过程系列教程(5)

    这一讲主要需要了解的安卓UI元素是Spinner.这个元素类似我们 winform和webform里面的下拉选项. 首先我们先建立一个新的项目,命名为SpinnerExample. 然后在Layout ...