3

以下のメソッドは、AZ と 0-9 の任意のキーを返します。Shift キー + 4 を押すと、同じコード 52 が返されます。

function keyUpEvent(e)//onkeyup event
{
    var chr = String.fromCharCode(e.keyCode);//converts the keycode into a character
    alert(chr);//alerts the character
}

しかし、シフトキーの組み合わせでそれぞれのキーが押されたときに$ または %を表示する必要があります。

4

4 に答える 4

6

私はこのようなもので行きます:

$(function () {
    $(document).on('keyup keydown keypress', function (event) {
        if (event.keyCode == 52 && event.shiftKey) {
            alert('foo');
        }
    });
});

jsfiddle

于 2013-03-01T12:48:06.000 に答える
2

一度に 2 つの重要なイベントを確認することはできません。イベントが発生したときにシフトキーが押されていたかどうかを示す e.shiftKey を試すことができます。確認してみてください:

if(e.keyCode === 53 && e.shiftKey){}

また、テキスト フィールドがある場合は、キー入力時にイベントを添付して「%」をチェックできます。

https://developer.mozilla.org/en-US/docs/DOM/event.shiftKey

マルセル・コーペルに感謝

于 2013-03-01T12:52:15.410 に答える
2

キーコードはキーのみに関連します。$Shift と 4 の 2 つのキーによって実現される文字です$ onkeydown

onkeypress編集:キーの組み合わせを使用し、組み合わせ用のキーコードを持っていることはエドワードによって指摘されました。毎日何か新しいことを学びましょう:)

onkeydownキープレスのキーコードを検出するために、MDN によって提供された例から編集されたコードを次に示します。

これは、この SO 投稿のヘルプを使用して、Firefox に対応するように更新されたフィドルです。そのように振ると、JQuery ソリューションも機能します。

$ は に等しい36です。

JavaScript イベント キーコード テスト ページ

ここに同じSOスレッドがあります

于 2013-03-01T12:46:13.830 に答える
1

KeyDownの場合は、TextBox次を使用します。

if (e.Shift && e.KeyCode == Keys.4) {
  //Your code here
}
于 2013-03-01T12:49:37.597 に答える