我正在使用jquery v1.10.2,我有以下代码:
(function() {
var manufacturers=[];
manufacturers.push({
label:'Ismail Mayat',
value:'Ismail Mayat info@test.com'
});
$('#list').autocomplete({
source: manufacturers
}).data('autocomplete')._renderItem = function( ul, item ) {
var term = $('#list').val();
var label = item.label.replace(new RegExp(term, 'i'), '<span class="highlight">$&</span>');
return $( '<li></li>' )
.data( 'item.autocomplete', item )
.append( '<a>' + label + '</a>' )
.appendTo( ul );
};
})();
当我搜索ismail或mayat时,我得到了匹配。但是,当我搜索信息时,我没有得到任何结果。如果我将信息部分移动到标签,那么它的工作原理。过滤器正则表达式是否仅使用标签进行搜索?我还尝试通过添加代码来覆盖正则表达式:
$.ui.autocomplete.filter = function (array, term) {
var matcher = new RegExp('(^| )' + $.ui.autocomplete.escapeRegex(term), 'i');
return $.grep(array, function (value) {
return matcher.test(value.label || value.value || value);
});
};
但我仍然得到同样的东西。我在这里错过了一招吗?
此致
伊斯梅尔
答案 0 :(得分:0)
好的修好了。所以我需要过滤过滤器:
$.ui.autocomplete.filter = function (array, term) {
var matcher = new RegExp('(^| )' + $.ui.autocomplete.escapeRegex(term), 'i');
return $.grep(array, function (value) {
return matcher.test(value.label) || matcher.test(value.value) || matcher.test(value);
});
};
有效。