有问题使下拉原型功能,以允许多个键码每个值



我做了一个jsfiddle,基本上我想要的是用户不仅能够输入进入下拉菜单的代码,还可以输入我指定的附加值。

在这个简单的例子中,我希望,当用户专注于下拉菜单时,他们能够输入a或1来选择a, B或2来选择B, C或3来选择C。在我目前的实现中,只有3可以工作,所以似乎绑定被覆盖了。

这是jsfiddle: http://jsfiddle.net/yD7pb/

var selectArray = {
    49 : 'A',
    50 : 'B',
    51 : 'C'
};
$.fn.smartSelect = function(array){
    for( var index in array) {
        $(this).bind('keypress',function(event){
            if(event.keyCode == index){
                $(this).val(array[index]);
            }
        });
    }
};
$(document).ready(function() {
$("#testSelect").smartSelect(selectArray);
});

无需多次绑定回调函数。只需检查它是否匹配其中一个键,如果匹配,则设置值:

var selectArray = {
    49 : 'A',
    50 : 'B',
    51 : 'C'
};
$.fn.smartSelect = function(array){
    $(this).bind('keypress',function(event){
        if(event.keyCode in selectArray){
            $(this).val(array[event.keyCode]);
        }
    });
};
$(document).ready(function() {
    $("#testSelect").smartSelect(selectArray);
});

Jsfiddle: http://jsfiddle.net/yD7pb/5/

最新更新