温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-17 13:45:59 来源:网络 阅读:622 作者:26度出太阳 栏目:网络安全

    

先看一下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 这两个参数非常关键

Demo

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

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI