使用jQuery捕获“删除”Keypress

时间:2009-07-12 15:30:26

标签: jquery keypress

当使用jQuery文档中的示例代码来生成keypress事件处理程序时,我无法捕获 Delete 键。在FireFox中按下删除键时,下面的代码段将记录0

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

似乎必须有一种方法来捕获删除键,但这是一个含糊不清的术语,因此谷歌并没有证明对它有太多帮助。

5 个答案:

答案 0 :(得分:188)

您不应使用keypress事件,而应使用keyupkeydown事件,因为keypress事件适用于真实(可打印)字符。 keydown在较低级别处理,因此它将捕获所有非打印键,如 delete 输入

答案 1 :(得分:75)

$('html').keyup(function(e){
    if(e.keyCode == 46) {
        alert('Delete key released');
    }
});

来源:javascript char codes key codes来自www.cambiaresearch.com

答案 2 :(得分:30)

Javascript密钥代码

  • e.keyCode == 8 for backspace
  • e.keyCode == 46 for forward backspace delete 按钮在PC的

除了这个细节,Colin& Tod的答案正在起作用。

答案 3 :(得分:7)

event.key ===“删除”

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

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

Mozilla Docs

Supported Browsers

答案 4 :(得分:0)

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

 $(document).keyup(function(e){
   if(e.key === "Backspace") {
    alert('Delete key/ backspace');
   }
 });