我在自动填充字段中使用 datalist 。它的工作正常。我的列表中有值 james,reeta和mary ,如果我在自动完成框中输入“r”,则会返回值reeta和mary,因为mary还包含字母“r”。但我不希望我的汽车完成这样工作。我只想要 reeta not mary 这意味着输入的字母作为起始字母的值。
答案 0 :(得分:1)
使用source
选项实现您自己的搜索:
var dataSource = ['mary', 'reeta', 'james'];
$("input").autocomplete({
minLength: 1,
source: function(request, response) {
var matcher = new RegExp( '^' + $.ui.autocomplete.escapeRegex(request.term), "i" );
var filteredData = $.grep( dataSource, function(value) {
return matcher.test( value.label || value.value || value );
});
response(filteredData);
}
});
示例http://jsfiddle.net/AU92X/8/
或者您甚至可以通过重写$.ui.autocomplete.escapeRegex
:
var dataSource = ['mary', 'reeta', 'james'];
$("input").autocomplete({
minLength: 1,
source: dataSource
});
var escapeRegexp = $.ui.autocomplete.escapeRegex;
$.extend( $.ui.autocomplete, {
escapeRegex: function( value ) {
return '^' + escapeRegexp(value);
}
});