我试图使用我从这里获得的jquery-autocomplete库https://github.com/devbridge/jQuery-Autocomplete
这里是演示的原始代码
$('#autocomplete').autocomplete({
lookup: countriesArray,
minChars: 0,
onSelect: function (suggestion) {
$('#selection').html('You selected: ' + suggestion.value + ', ' + suggestion.data);
}
});
但我需要下拉建议列表才能在我输入密钥@(键码64)后显示,所以这就是我所做的:
$('#autocomplete').keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == 64){ //for @
$('#autocomplete').autocomplete({
lookup: countriesArray,
minChars: 1,
onSelect: function (suggestion) {
$('#selection').html('You selected: ' + suggestion.value + ', ' + suggestion.data + ', ' + keycodekeycode);
}
});
}
});
但问题是现在下拉列表不会出现。没有发现任何错误。但是,如果我放了像
这样的东西$('#autocomplete').keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
var test = "1234";
if(test== "1234"){ //for @
$('#autocomplete').autocomplete({
lookup: countriesArray,
minChars: 1,
onSelect: function (suggestion) {
$('#selection').html('You selected: ' + suggestion.value + ', ' + suggestion.data + ', ' + keycodekeycode);
}
});
}
});
下拉建议列表会出现没有任何问题。知道我在这里缺少什么吗?
TQ
答案 0 :(得分:0)
你解决了这个问题吗?如果不是,那么这就是你想要的小提琴JSFIDDLE
在我阅读插件后,我发现你可以在找到建议之前操纵搜索查询,所以你需要的是添加
lookupFilter: function(suggestion, query, queryLowerCase) {
if (showResult)
return suggestion.value.indexOf(query.replace('@', '')) !== -1;
else
return false
},
如果你看到,我的自动填充声明被放在外面,因为你只需要创建一次自动完成,并决定在自动完成本身内显示或不显示结果