基于keycode后显示自动完成下拉列表

时间:2014-06-12 08:42:07

标签: jquery

我试图使用我从这里获得的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

1 个答案:

答案 0 :(得分:0)

你解决了这个问题吗?如果不是,那么这就是你想要的小提琴JSFIDDLE

在我阅读插件后,我发现你可以在找到建议之前操纵搜索查询,所以你需要的是添加

lookupFilter: function(suggestion, query, queryLowerCase) {
if (showResult)
    return suggestion.value.indexOf(query.replace('@', '')) !== -1;
else
    return false
},

如果你看到,我的自动填充声明被放在外面,因为你只需要创建一次自动完成,并决定在自动完成本身内显示或不显示结果