如何检测使用jQuery按下输入的时间?

时间:2015-06-09 23:22:04

标签: javascript jquery

我正在尝试检测按下了哪个键,并根据我要触发click()事件。

除了输入外,我的代码适用于所有密钥。

出于某种原因,当我按下"输入"我没有在屏幕上看到任何消息,就像没有按下输入按钮一样。

这是我的代码

    $(function(){
        $(document).keypress(function(e) {
            handleKeyPress(e);
        });

        function handleKeyPress( e ){

            var key = e.which;

            alert(key);

            if( getIcwsTabIndex() != 1){
                return;
            }

            if( key >= 48 && key <= 57){
                var k = key - 48;
                $('#icwsDialerNumber' + k).click();
            }

            if( key == 8){
                e.preventDefault();
                $('#icwsDialerScreenDel').click();

            }

            if( key == 13){
                e.preventDefault();
                $('#icwsDialerNumberDial').click();
            }
        }
    });

我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

测试了您的代码,除了未定义的getIcwsTabIndex

之外,它还适用于chrome

所以确认你身边没事

here is a fiddle check the console

 $(function(){
        $(document).keypress(function(e) {
            handleKeyPress(e);
        });

        function handleKeyPress( e ){

            var key = e.which;
            console.log(key);


    //            if( getIcwsTabIndex() != 1){
    //                return;
    //            }

            if( key >= 48 && key <= 57){
                var k = key - 48;

                $('#icwsDialerNumber' + k).click();
            }

            if( key == 8){
                e.preventDefault();
                $('#icwsDialerScreenDel').click();

            }

            if( key == 13){
                e.preventDefault();
                console.log(key);
                $('#icwsDialerNumberDial').click();
            }
        }
    });

答案 1 :(得分:-1)

您的代码存在的问题是不是跨浏览器。它应该是:

var key = e.charCode || e.keyCode || 0;