Javascript e.keyCode在IE中没有捕获Backspace / Del

时间:2010-11-03 06:38:21

标签: javascript jquery internet-explorer keypress

我正试图用这种代码使用javascript / jQuery来捕捉Backspace和Delete键的紧急事件。

$("textarea[name=txt]").keypress(function(e){
    var keycode =  e.keyCode ? e.keyCode : e.which;

    if(keycode == 8){ // backspace
        // do somethiing
        alert(keycode);
    }

    if(keycode == 46){ // delete
        // do somethiing
        alert(keycode);
    } 

});

这些代码行在Firefox(3.6.12)中完美运行。这意味着按下Backspace或Delete时会弹出警报。 但这不适用于Internet Explorer(8)

有人可以建议我以不同的方式在Internet Explorer中捕获这些关键的新闻事件吗?

2 个答案:

答案 0 :(得分:25)

如果你想支持IE并且使用特殊密钥(例如deletebackspace),我建议改为使用keydown / keyup

  

特殊键

     

资源管理器不会触发按键   删除,结束,输入,转义事件,   功能键,主页,插入,   pageUp / Down和tab。

     

如果您需要检测这些密钥,请帮忙并搜索其keyCode onkeydown / up ,并忽略onkeypress和charCode。

您可以阅读有关 Detecting keystrokes (Quirksmode) 的跨浏览器问题的更多信息。

答案 1 :(得分:-4)

如果我们在文本框中已经有几个字符,

退格键代码将采用值= 83

如果文本框中没有任何字符,并且我们正在尝试按退格键,则密钥代码将为= 8