web-dev-qa-db-ja.com

jQueryで「削除」キープレスをキャプチャする

KeypressイベントハンドラーにjQueryドキュメントのサンプルコードを使用すると、 Delete キー。以下のスニペットは、0を記録します。 Delete FireFoxでキーが押されました:

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

をキャプチャする方法があるに違いない Delete キーですが、それはあいまいな用語なので、Googleはそれをあまり助けになっていません。

108
Shane H

keypressイベントは実際の(印刷可能な)文字を対象としているため、keyupイベントを使用するのではなく、keydownまたはkeypressイベントを使用する必要があります。 keydownは下位レベルで処理されるため、次のようなすべての非印刷キーをキャプチャします。 delete そして enter

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

ソース: javascript char codes key codes from www.cambiaresearch.com

76
Tod Palin

Javascriptキーコード

  • e.keyCode == 8 for backspace
  • e.keyCode == 46 forward backspace または delete PCのボタン

この詳細を除いて、Colin&Todの答えは有効です。

30
csonuryilmaz

event.key ===「削除」

より新しく、よりクリーンに:event.keyを使用します。これ以上の任意の番号コードはありません!

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

Mozilla Docs

サポートされているブラウザ

7
Gibolt