1

簡単そうに見えますが、DocumentDOMからJavaScriptの数字をインターセプトする方法がわかりませんでした

    $(document).keypress(function (e) {
        if (e.keyCode == xx) {
            alert();
        }
    });
4

4 に答える 4

7

番号は48から57なので、...

$(document).keypress(function (e) {
    var key = e.keyCode || e.charCode;
    if (key >= 48 && key <= 57) {
        alert('You pressed ' + (key - 48));
    }
});

デモを見る

于 2012-06-03T05:01:24.927 に答える
2

出典:http ://www.quirksmode.org/js/keys.html

Keypressイベントは、FirefoxではkeyCode 0を生成し、それ以外の場合はASCII文字値を生成します。Keypressイベントは、FirefoxでASCII文字値のcharCodeを生成します。したがって、を使用(e.keyCode || e.charCode)して文字値を取得する必要があります。

alertまた、1つの引数を受け入れる必要があるため、コードも機能しないことに注意してください。Firefoxでは、少なくとも、alert引数なしで呼び出すと例外がスローされます。

これらの2つの問題が修正されると、コードは次のようになります。

$(document).keypress(function (e) {
    if ((e.keyCode || e.charCode) == <number from 48..57 inclusive>) {
        alert('something');
    }
});

例: http: //jsfiddle.net/gRrk6/

于 2012-06-03T05:01:25.303 に答える
0

$(document).keydown(function(event){ if(event.keyCode == 13) { alert('you pressed enter');} }); 13をキーコードに置き換えます。詳細については、こちらをご覧ください:http: //www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

于 2012-06-03T05:00:32.987 に答える
0

以下のリンクからのJavaScriptイベントKeyCodeテストページビュー

イベント[keyCode、charCode、which] とブラウザの影響を受けるこのテストページの違いに気付くはずです。つまり、私はサファリでテストしまし た。onKeyPressは常に空です。

JavaScriptイベントKeyCodeテストページ

于 2012-06-03T05:14:36.703 に答える