这是阵列。如果我在框中输入 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开头的结果。没有?有没有办法纠正这种行为?
提前致谢
答案 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
或者你可以在这个函数中编写你想要的任何匹配方案。