jQuery 自动完成子字符串匹配
jQuery Autocomplete Substring Matching
我正在尝试 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
。这将 return 匹配的任何内容,无论搜索字符串的索引在实际字符串中是什么。
我正在尝试 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
。这将 return 匹配的任何内容,无论搜索字符串的索引在实际字符串中是什么。