我正在使用此版本进行jQuery自动填充,其中我有一个单词列表:
$(function () {
var availableTags = [
"hello world", "foo bar", "bar foo world", "hello", "bar"
];
function customFilter(array, terms) {
arrayOfTerms = terms.split(" ");
var term = $.map(arrayOfTerms, function (tm) {
return $.ui.autocomplete.escapeRegex(tm);
}).join('|');
var matcher = new RegExp("\\b" + term, "i");
return $.grep(array, function (value) {
return matcher.test(value.label || value.value || value);
});
};
$("#tags").autocomplete({
source: availableTags,
multiple: false,
mustMatch: false
,source: function (request, response) {
// delegate back to autocomplete, but extract the last term
response(customFilter(
availableTags, request.term));
},
});
});
“hello world”,“foo bar”,“bar foo world”,“hello”,“bar”
我的问题是,在输入“world hello”时,我只想显示“hello world”。
同样,当我输入空格时,显示的所有选项在我的情况下都是不正确的。
我该如何实现这种行为?
谢谢
答案 0 :(得分:1)
忘记突出显示,您可以尝试迭代地为您的数组选择分割术语
function customFilter(array, terms) {
arrayOfTerms = terms.split(" ");
arrayOfTerms.forEach(function (entry) {
array = $.grep(array, function (e) {
return e.indexOf(entry) >= 0;
})
});
return array;
}