jQuery自动完成子字符串匹配
问题描述:
我试图做jQuery自动完成,使我可以搜索多个单词。jQuery自动完成子字符串匹配
举例来说,如果我有smart
,very smart
和super smart
在列表中,我想可以开始输入smar
,并有三个选项出现。
这段代码的意义在于,如果我从一开始就像over
那样开始打字,它会建议over smart
这是正确的。但是如果我只输入smart
这就是我们所期望的输出结果,这并不表示它。
任何想法如何调整代码,以便我可以搜索并建议在列表中说一个子字符串?
http://jsfiddle.net/UKgD6/390/
var acList = ['smart',
'over smart',
'smart land',
'under smart',
'very smart'
];
$('#ac').autocomplete({
source: function(request, response) {
var matches = $.map(acList, function(acItem) {
if (acItem.toUpperCase().indexOf(request.term.toUpperCase()) === 0) {
return acItem;
}
});
response(matches);
}
});
答
您的问题可以通过改变indexOf()
检查固定。将=== 0
更改为!== -1
。无论搜索字符串的索引在实际字符串中如何,都会返回任何匹配的内容。
哦,我的天哪,你真了不起!精彩的作品 –