如何在下拉列表中使用键盘选择月份?

时间:2015-03-16 06:53:02

标签: javascript jquery html

我正在尝试使用键盘选择下拉菜单中的月份      1一月      2月2日等       我尝试使用javascript实现这一个...我得到它到九月,我必须添加到实现完整的结果,这是我的代码......

JAVASCRIPT:         

$(".select_month").on('keyup',function(){
    var index;
    if(event.keyCode>=96&&event.keyCode<=105) {
            index=((event.keyCode+1)-96)-1;
        document.getElementById("month").selectedIndex =index;
    }
});

select_month是select的类名...请帮帮我...提前谢谢

2 个答案:

答案 0 :(得分:0)

首先,您可以通过添加&#34; 1月1日和#34;,&#34; 2月2日&#34;来实现这一目标。等 - 但我明白它是否太难看了。

其次,你忘记了&#34;事件&#34;函数中的参数。没有这个event.keyCode就不存在了。然后你必须创建一个超时函数,等待一秒钟输入另一个字符,比如第1个然后是2个,以表示12月。如果用户在最后一秒内按下了一个keyUp,请将其添加到另一个键码并执行某些操作。

答案 1 :(得分:-1)

这是一个非常令人难以置信的问题。所以我尝试了一些东西,这里是小提琴

http://jsfiddle.net/2g53299u/

$(".select_month").on('keyup',function(event){
    if(event.keyCode>=48&&event.keyCode<=57) {
        var index;
        var fentry;
        if($(this).hasClass('firstkey')) {
            index = 10+event.keyCode-48;
        } else {
            $(this).addClass('firstkey');
            index = event.keyCode-48;
        }
        $(".select_month option[value=" + index +"]").addClass("selectedmonth");
        setTimeout(function() {
            $(".selectedmonth").prop('selected', true);
            $('.firstkey').removeClass('firstkey');
            $('.selectedmonth').removeClass('selectedmonth');
        }, 500); 
    }
});

我确信,你可以做得更优雅(没有课程),但对于第一次拍摄,它可以工作。 关键是,我使用超时功能来接收超过1个键盘输入。

干杯 [R