您可以在以下位置找到自己source
函数,而不是使用内置函数 http://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.autocomplete.js#L322, 像这样:
source: function( request, response ) {
var matcher = new RegExp($.trim(request.term).replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), "i" );
response($.grep(resources, function(value) {
return matcher.test( value.label || value.value || value );
}));
}
您可以在这里尝试演示 http://jsfiddle.net/nick_craver/5wLAq/。这使用$.trim() http://api.jquery.com/jQuery.trim/在搜索词被传入之前修剪它$.grep() http://api.jquery.com/jQuery.grep/以获得您想要的前导/尾随空白无知效果。
对于您的编辑,您可以执行此操作,但可以选择“无结果...”,在这里尝试一下 http://jsfiddle.net/nick_craver/5wLAq/2/:
source: function( request, response ) {
var matcher = new RegExp($.trim(request.term).replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), "i" );
var matches = $.grep(resources, function(value) {
return matcher.test( value.label || value.value || value );
});
response(matches.length ? matches : [{ label: 'No Result Found', value: '' }]);
}