web-dev-qa-db-ja.com

onkeydownイベントでバックスペースをキャプチャする方法

テキストボックスの onkeydown イベントによってトリガーされる関数があります。ユーザーがバックスペースキーまたはdelキーを押したかどうかを確認するにはどうすればよいですか?

60
Raphael

これを試して:

document.addEventListener("keydown", KeyCheck);  //or however you are calling your method
function KeyCheck(event)
{
   var KeyID = event.keyCode;
   switch(KeyID)
   {
      case 8:
      alert("backspace");
      break; 
      case 46:
      alert("delete");
      break;
      default:
      break;
   }
}
92
Stephano

関数で、キーコード8(バックスペース)または46(削除)をチェックします

キーコード情報
キーコードリスト

6
jasonbar

event.key ===「Backspace」または「Delete」

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

input.addEventListener('keydown', function(event) {
    const key = event.key; // const {key} = event; ES6+
    if (key === "Backspace" || key === "Delete") {
        return false;
    }
});

Mozilla Docs

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

6
Gibolt

firefoxの外で動作するかどうかわかりません:

callback (event){
  if (event.keyCode === event.DOM_VK_BACK_SPACE || event.keyCode === event.DOM_VK_DELETE)
    // do something
  }
}

そうでない場合は、event.DOM_VK_BACK_SPACE8に、event.DOM_VK_DELETE46に置き換えるか、定数として定義します(読みやすくするため)

0
Mathieu