我希望能够搜索全名列表。我见过的自动完成演示都是从头开始搜索的。这也不好,因为我也想要姓氏上的匹配。
如果它至少遵循单词边界,我可以在没有全文搜索的情况下生活。像这里的标签搜索那样排序。怎么办?
干杯
答案 0 :(得分:0)
你可以。只需从执行实际搜索的服务器端功能中获取项目。例如SQL服务器。你应该考虑表现。大量行可能需要足够长的时间来进行“片状”自动完成。
答案 1 :(得分:0)
这是一个搜索名字和姓氏的代码段,即使您的搜索字词中有多个部分字词也是如此:
var arrayOfNames = [{first:"John", last:"Box"},{first:"Rachel", last:"Park"}
,{first:"Rachel", last:"Dark"},{first:"Rachel", last:"Luck"}];
$("#input").autocomplete({
source: function( request, response ) {
var names = [];
var searchTerms = request.term.split(" ");;
$.grep(arrayOfNames, function(person, i) {
var matches = 0;
$.each(searchTerms, function(i, term) {
if(person.first.indexOf(term)>=0 || person.last.indexOf(term)>=0)
matches++;
});
if(matches == searchTerms.length)
names.push({value:person.first+" "+person.last});
});
response(names);
}
});
在此处查看此行动:http://jsfiddle.net/t29req1s/1/