2017-08-22 39 views
0

我使用jQuery v1.10.2的和我下面的代码:jQuery UI的自动完成功能筛选仅

(function() { 
    var manufacturers=[]; 
    manufacturers.push({ 
    label:'Ismail Mayat', 
    value:'Ismail Mayat [email protected]' 
    }); 
    $('#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); 
    }; 

})(); 

,当我搜索伊斯梅尔或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

好的固定它。所以我需要骑过滤器:

$.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); 
    }); 
}; 

该工程。