jquery autocomplete会在顶部带来错误的结果

时间:2014-01-29 23:50:01

标签: javascript jquery autocomplete

这是阵列。如果我在框中输入 l 字母 lol 应该是第一个结果,而是计算器

var src = [
    "actionScript",
    "calculator",
    "asp",
    "bASIC",
    "lol",
    "c++",
    "clojure",
    "cOBOL",
    "malstrom",
    "erlang",
    "caltronic",
    "groovy",
    "haskell",
    "java",
    "javaScript",
    "lisp",
    "perl",
    "php",
    "python",
    "ruby",
    "scala",
    "scheme"];

$("#auto").autocomplete({ 
    source: src
});

http://jsfiddle.net/vqwBP/494/

我想这是因为它在计算器中检测到l,但我认为它应该首先显示以l开头的结果。没有?有没有办法纠正这种行为?

提前致谢

1 个答案:

答案 0 :(得分:1)

这是因为计算器匹配,它首先在列表中。

如果你想根据开头匹配 使用

    // Overrides the default autocomplete filter function to search only from the beginning of the string
$.ui.autocomplete.filter = function (array, term) {
    var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(term), "i");
    return $.grep(array, function (value) {
        return matcher.test(value.label || value.value || value);
    });
};

http://blog.miroslavpopovic.com/jqueryui-autocomplete-filter-words-starting-with-term

或者你可以在这个函数中编写你想要的任何匹配方案。