有没有办法从下拉列表的搜索框中的文本中返回包含至少一个单词的项目。
有很多ajax教程,但它们都返回包含整个搜索文本的项目。
直到现在我正在使用JQUERY Autocompete
我需要更改RegEx才能实现我想要的目标:
// 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');
}
});
答案 0 :(得分:0)
您可以更改RegExp以在建议中的任何位置搜索整个单词,如下所示:
var re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase) + '\\b', 'gi');
否则,如果您只想搜索单词的一部分,可以更改为indexOf,如下所示:
lookupFilter: function(suggestion, originalQuery, queryLowerCase) {
return re.test(suggestion.value.indexOf(queryLowerCase) != -1);
},