我尝试执行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);
}
});
答案 0 :(得分:1)
您可以通过更改indexOf()
支票来解决问题。将=== 0
更改为!== -1
。无论搜索字符串的索引在实际字符串中是什么,这都将返回匹配的任何内容。