2014-01-29 32 views
0

這裏是數組。如果我鍵入l在框lol應該是第一個結果,而不是計算器是。jquery自動完成在頂部帶來錯誤結果

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,但我認爲它應該首先顯示結果,從湖沒有?有什麼方法可以糾正這種行爲嗎?

在此先感謝

回答

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

或者你也可以寫你想要在這個函數內任何種類的匹配方案。