7

テキスト入力で他のすべての文字が入力されないようにしようとしています。

を取得するには、 -キーと-キー$を押す必要があります。このようなものの keyCode をどのように取得するのかわかりませんか?shift4

4

5 に答える 5

6

以前にngmicelionkeydownが言ったように、キーコードはありません

ただし、onkeypressキーコードは存在し、 と同じ36です。

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

于 2012-08-08T16:12:49.283 に答える
5

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

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

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

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

于 2012-08-08T16:08:22.040 に答える
2

次に、この方法を使用して問題を解決しないでください。すべてのキーボードレイアウトで常に $-sign が shift+4 として入力されるとは予測できないためです。
キーコード 4 を取得し、Shift キーが押されたかどうかを確認することはできますが、これを確認することはできません!!

したがって、(データを送信する前に)フィールド内のすべての不正な文字を単純に置き換える方がよいでしょう。考えてみてください: str.replace()
また、入力ボックスの onkeyup イベントで一連の不正な文字をチェックして、入力したすべての不正な文字を効果的に置き換えることもできます!
好き:onkeyup="this.value.replace(/[your illegal characters]/gi, '')"
それはあなたが望むことをするはずです。

注意: ブラウザ入力を決して信用してはならず、受信スクリプトでこの入力をフィルタリングする必要があります!!!

幸運を!!

于 2012-08-08T16:12:43.400 に答える
1

onkeypress - Unicode CHARACTER コードは次のとおりです: 36

onkeydown - Unicode KEY コードは次のとおりです: 52

于 2015-07-14T03:49:15.997 に答える
1

は有効なキーではないため、 のキー コードはありませ$ん。何らかのシフターを介してアクセスする必要があります。

通常、シフターがアクティブかどうかを確認しkeypress、関連するキーのイベントをリッスンします。インスタンスの QWERTY レイアウトの場合は次のようになります。

var shiftPressed = false;

$(window).keydown(function(e) {  
    if(e.which == 16) { shiftPressed = true; }
    if(e.which == 52 && shiftPressed) 
    {  
        // Do whatever here...
    }
});

$(window).keyup(function(e) {  
    if(e.which == 16) { shiftPressed = false; }
});
于 2012-08-08T16:14:18.270 に答える