问题是制作一个下拉原型函数,以允许每个值有多个密钥代码

时间:2013-06-07 16:33:17

标签: jquery loops bind

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

});

1 个答案:

答案 0 :(得分: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/