仅选择值,字母是自动完成数据列表中的起始字母

时间:2013-06-19 13:44:11

标签: html5

我在自动填充字段中使用 datalist 。它的工作正常。我的列表中有值 james,reeta和mary ,如果我在自动完成框中输入“r”,则会返回值reeta和mary,因为mary还包含字母“r”。但我不希望我的汽车完成这样工作。我只想要 reeta not mary 这意味着输入的字母作为起始字母的值。

1 个答案:

答案 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);
    }
});

示例http://jsfiddle.net/AU92X/10/