是否有可能使用jQuery自动完成功能,以便在有'source:'值可用时,但它们与您输入的内容不匹配,那么只需一次显示所有源?
IE,给定以下代码,如果我输入“菠萝”,你如何显示所有编程语言而不是它们?
<script>
$(function() {
var availableTags = [
"JavaScript",
"Perl",
"PHP",
"Python",
"Ruby"
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
<input type="text" id="tags" />
答案 0 :(得分:6)
将source
属性与自定义函数一起使用。下面显示的自定义函数模仿自动完成原始行为,在可用标记内搜索键入的文本作为子字符串。如果未找到匹配项,则返回所有可用标记。
$(function() {
var availableTags = [
"JavaScript",
"Perl",
"PHP",
"Python",
"Ruby"
];
$("#tags").autocomplete({
source: function(request, response) {
var term = request.term.toLowerCase();
var matchingTags = $.grep(availableTags, function(tag) {
return tag.toLowerCase().indexOf(term) >= 0;
});
response(matchingTags.length ? matchingTags : availableTags);
}
});
});
答案 1 :(得分:3)
只需编写自定义source
回调。
例如:
source: function(req, res){
res(['w00t', 'yay']);
}
在你的情况下(伪代码):
source: function(req, res){
//find `req` in array
if not found:
res(availableTags);
else:
res({subset of availableTags});
}