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

我试图用这种代码使用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中捕获这些关键的新闻事件吗?

如果你想支持IE,你使用特殊键(如deletebackspace ),我建议使用keydown / keyup

特殊钥匙

资源管理器不会为delete,end,enter,escape,function键,home,insert,pageUp / Down和tab激活keypress事件。

如果你需要检测这些密钥,请自己帮忙并搜索他们的keyCode onkeydown / up ,并忽略onkeypress和charCode。

您可以阅读有关检测击键 (Quirksmode)的跨浏览器问题的更多信息。

如果我们在文本框中已经有几个字符,则 Backspace的键代码将取值= 83

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