125

将 jQuery 文档中的示例代码用于按键事件处理程序时,我无法捕获Delete密钥。0当在 FireFox 中按下该Delete键时,下面的代码片段将记录:

$(document).keypress(function(e) {
    console.log(e.which);       
});

似乎必须有一种方法来捕获Delete密钥,但这是一个模棱两可的术语,因此 Google 并没有提供太多帮助。

4

5 回答 5

210

您不应该使用keypress事件,而是使用keyuporkeydown事件,因为该keypress事件是为真实(可打印)字符设计的。keydown在较低级别处理,因此它将捕获所有非打印键,如deleteenter

于 2009-07-12T15:34:40.200 回答
84
$('html').keyup(function(e){
    if(e.keyCode == 46) {
        alert('Delete key released');
    }
});

来源:javascript char codes 关键代码来自 www.cambiaresearch.com

于 2012-07-27T10:21:46.630 回答
36

Javascript 键码

  • e.keyCode == 8 为backspace
  • e.keyCode == 46 用于PC 中的forward backspacedelete按钮

除了这个细节科林和托德的回答是有效的。

于 2012-11-01T10:39:25.860 回答
21

event.key === "删除"

更新和更清洁:使用event.key. 没有更多的任意数字代码!

注意:旧属性 (.keyCode.which) 已弃用。

document.addEventListener('keydown', function(event) {
    const key = event.key; // const {key} = event; ES6+
    if (key === "Delete") {
        // Do things
    }
});

Mozilla 文档

支持的浏览器

于 2017-12-03T01:36:35.053 回答
0

您可以使用 jQuery 跟踪删除/退格键,如下所示:

 $(document).keyup(function(e){
   if(e.key === "Backspace") {
    alert('Delete key/ backspace');
   }
 });
于 2021-03-09T01:24:36.500 回答