Javascript e.keyCode 无法捕获 IE 中的 Backspace/Del

标签 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) 中完美运行。这意味着当按下退格键或删除键时会弹出警报。 但这在 Internet Explorer (8) 中不起作用

谁能给我建议一种不同的方法来捕获 Internet Explorer 中的这些按键事件?

最佳答案

如果您想支持 IE 并且使用特殊键(例如 deletebackspace),我建议使用 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/

相关文章:

jquery - 从具有相同类的所有元素中获取文本

javascript - 图像上传部分中的跨浏览器图像预览在 ie8 中不起作用

internet-explorer - IE8 : making the `nth-child` selector work inside media queries?

javascript - AngularJS中路由逻辑的延迟启动

javascript - "-"在 chrome 内存 devtool 的距离字段中意味着什么

javascript - 云函数已触发,但未执行

javascript - 在这里正确使用函数式编程 : how do I use . map() 有效吗?

javascript - 如何将多个类名添加到 fullcalendar 事件对象并删除一个指定的类名

javascript - 同一按钮类上的单击事件,但在 jquery 中调用不同的操作

ajax - IE https CORS XHR 请求失败,并出现 Script7002 : XMLHttpRequest: Network Error 0x2eff