仅选择带有字母的值是自动完成数据列表中的起始字母 [英] Select value only with letter is starting letter in autocomplete datalist
问题描述
我使用 datalist 作为我的自动完成 字段.它的工作正常.我的列表中有值 james、reeta 和 mary,如果我在自动完成框中输入 "r",它会返回值 reeta 和 mary,因为 mary 也包含字母 "r".但我不希望我的自动完成像这样工作.我只想要 reeta not mary 这意味着以输入的字母作为起始字母的值.
I am using datalist for my autocomplete field. Its working fine. I have the values james,reeta and mary in my list, if i enter "r" in my auto complete box, it returns the values reeta and mary because mary also contain the letter "r". but i dont want my auto complete to work like this. i just want only reeta not mary it means the values which has the entered letter as the starting letter.
推荐答案
使用 source
选项实现自己的搜索:
Use source
option to implement your own search:
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
使其成为全局:
Or you can even make it global just by rewriting $.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);
}
});
示例 http://jsfiddle.net/AU92X/10/
这篇关于仅选择带有字母的值是自动完成数据列表中的起始字母的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!