我有一个jquery自动完成小部件,它显示带有自定义数据的项目。
他们都有value
和description
目前,当点击某个项目并且项目的value
是搜索内容时,value
会插入到文本框中
我想要做的是在过滤要显示的项目时,过滤器同时使用value
和description
,但只保留插入的value
。
我怎样才能做到这一点?
答案 0 :(得分:1)
如果您为自动填充程序提供了一个包含value
和label
(而不是description
)属性的对象数组,它将为您执行过滤,但仅限于{{1 (不是label
)。
如果您为source
option指定了一项功能,则您需要自行进行过滤。您会收到value
参数(具有request
属性的对象)和term
参数(用于回调结果的函数)。然后,您可以使用自己喜欢的任何搜索方式自行返回相关结果(例如,您可以在代码中同时搜索response
和value
)。
,例如,松散地:
description
您返回的数组可以只是字符串,也可以是具有$("some selector").autocomplete({
// ...other options...
source: function(request, response) {
var matches = [];
/* ...search for matches in your data using `request.term`,
add them to `matches`...
*/
response(matches);
}
});
和value
属性的对象。系统会显示label
,选中时会使用label
。
例如,这里是一个使用(短)机场列表的机场,当您键入它时,它会同时检查value
(机场代码)和value
(机场名称):{ {3}} | Live copy
description
因此输入“或”或“chic”会显示“ORD - Chicago O'Hare”,选择它会将“ORD”放入该字段中。输入“san”或“sfo”将显示“SFO - 旧金山国际”并选择它将把“SFO”放在现场。