web-dev-qa-db-ja.com

JavaScript e.keyCodeがIEでBackspace / Delをキャッチしない

この種のコードで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)で完全に機能します。つまり、BackspaceまたはDeleteが押されたときにアラートがポップアップ表示されます。しかし、これはInternet Explorer(8)では機能しません

Internet Explorerでこれらのキーを押すイベントをキャッチする別の方法を誰かが私に提案できますか?

19
indranama

IE=をサポートし、特殊なキー(deletebackspaceなど)を使用する場合、keydown/keyup代わりに。

特殊キー

エクスプローラーキープレスを起動しません削除、終了、入力、エスケープ、ファンクションキー、ホーム、挿入、pageUp/Down、およびタブのイベント。

これらのキーを検出する必要がある場合は、自分でお願いし、keyCode onkeydown/upを検索して、onkeypressとcharCodeの両方を無視します。

キーストロークの検出(Quirksmode)のクロスブラウザーの問題について詳しく読むことができます。

25
gblazex