我正在尝试使用 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) 中完美运行。这意味着当按下退格键或删除键时会弹出警报。 但这在 Internet Explorer (8) 中不起作用
谁能给我建议一种不同的方法来捕获 Internet Explorer 中的这些按键事件?
最佳答案
如果您想支持 IE 并且使用特殊键(例如 delete
和 backspace
),我建议使用 keydown
/keyup
相反。
Special keys
Explorer doesn't fire the keypress event for delete, end, enter, escape, function keys, home, insert, pageUp/Down and tab.
If you need to detect these keys, do yourself a favour and search for their keyCode onkeydown/up, and ignore both onkeypress and charCode.
您可以阅读Detecting keystrokes的跨浏览器问题的更多信息。 (怪异模式)。
关于Javascript e.keyCode 无法捕获 IE 中的 Backspace/Del,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4084715/