Jquery 下拉列表搜索/自动完成
是否有方法从dropdownlist的搜索框中返回至少包含一个单词的项目 有很多ajax教程,但它们都返回包含整个搜索文本的项目 直到现在我还在使用 我需要更改正则表达式以实现我想要的:Jquery 下拉列表搜索/自动完成,jquery,html,ajax,asp-classic,autocomplete,Jquery,Html,Ajax,Asp Classic,Autocomplete,是否有方法从dropdownlist的搜索框中返回至少包含一个单词的项目 有很多ajax教程,但它们都返回包含整个搜索文本的项目 直到现在我还在使用 我需要更改正则表达式以实现我想要的: // Initialize ajax autocomplete: $('#autocomplete-ajax').autocomplete({ // serviceUrl: '/autosuggest/service/url', lookup: countriesArray, looku
// Initialize ajax autocomplete:
$('#autocomplete-ajax').autocomplete({
// serviceUrl: '/autosuggest/service/url',
lookup: countriesArray,
lookupFilter: function(suggestion, originalQuery, queryLowerCase) {
var re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase), 'gi');
return re.test(suggestion.value);
},
onSelect: function(suggestion) {
$('#selction-ajax').html('You selected: ' + suggestion.value + ', ' + suggestion.data);
},
onHint: function (hint) {
$('#autocomplete-ajax-x').val(hint);
},
onInvalidateSelection: function() {
$('#selction-ajax').html('You selected: none');
}
});
您可以更改RegExp以在建议中的任何位置搜索整个单词,如下所示:
var re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase) + '\\b', 'gi');
lookupFilter: function(suggestion, originalQuery, queryLowerCase) {
return re.test(suggestion.value.indexOf(queryLowerCase) != -1);
},
否则,如果只想搜索单词的一部分,可以更改为indexOf,如下所示:
var re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase) + '\\b', 'gi');
lookupFilter: function(suggestion, originalQuery, queryLowerCase) {
return re.test(suggestion.value.indexOf(queryLowerCase) != -1);
},
到目前为止您做了什么/尝试了什么?@GSDa您能展示一下您的代码以提供帮助吗?如果我们不知道你做了什么或至少尝试了做什么,有谁能帮助你?@urbz I更新了帖子@AllBlond我更新了帖子!谢谢你的回复,我发现了模糊libs。我现在正在使用FuzzySet.js,它在搜索中更有效。