Jquery自动完成推荐

时间:2016-08-02 06:49:21

标签: javascript jquery jquery-ui

我正在尝试JQuery自动完成示例。请参阅 - http://jsfiddle.net/LCv8L/797/

当我输入“Ar”时,它应首先给出“Ar”相关项目。但是,尽管我已经给出minLength,但它首先显示“An”。可能是它正在考虑按字母顺序排列。有什么建议可以解决这个问题吗?

    minLength: 1,
    select: function(event, ui) {
        event.preventDefault();
        $("#customer-search").val(ui.item.label);
        $("#selected-customer").val(ui.item.label);
    },
    focus: function(event, ui) {
        event.preventDefault();
        $("#customer-search").val(ui.item.label);
    }
});

3 个答案:

答案 0 :(得分:1)

默认情况下,自动填充包含字符串的搜索项,而不是以。

开头
$('#customer-search').autocomplete({
    source: function(request, response) {
        var filtered = $.map(data, function(item) {
            if(item.value.toLowerCase().startsWith(request.term.toLowerCase())) {
                return item;
            }
            else {
                return null;
            }
        });
        response(filtered);
    }
});

答案 1 :(得分:1)

尝试在" search"中更改名称空间中的正则表达式方法

请在jsfiddle.net/LCv8L/800 /

中找到答案

答案 2 :(得分:1)

在jsfiddle中运行此代码 它正在按你的意愿工作.. :)  //使用正则表达式是防止这种情况的更好方法。

   var wordlist= [
       "Afghanistan",
        "Albania",
        "Algeria",
        "American Samoa",
       "Andorra",
        "Angola",
        "Anguilla",
        "Antarctica",
        "Antigua and Barbuda",
        "Argentina",
        "Armenia",
        "Aruba",
        "Australia",
        "Austria",
        "Azerbaijan"
    ] ; 

    $("#customer-search").autocomplete({

        source: function(req, responseFn) {
            var re = $.ui.autocomplete.escapeRegex(req.term);
            var matcher = new RegExp( "^" + re, "i" );
            var a = $.grep( wordlist, function(item,index){
                return matcher.test(item);
            });
            responseFn( a );
        }
    });