0

我做了一个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);

});
4

1 回答 1

0

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

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/

于 2013-06-07T17:30:31.967 回答