我试图做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
。无论搜索字符串的索引在实际字符串内是什么,这都将返回匹配的任何内容。
http://jsfiddle.net/UKgD6/391/
关于javascript - jQuery自动完成子字符串匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44576602/