テキスト入力で他のすべての文字が入力されないようにしようとしています。
を取得するには、 -キーと-キー$
を押す必要があります。このようなものの keyCode をどのように取得するのかわかりませんか?shift4
テキスト入力で他のすべての文字が入力されないようにしようとしています。
を取得するには、 -キーと-キー$
を押す必要があります。このようなものの keyCode をどのように取得するのかわかりませんか?shift4
以前にngmicelionkeydown
が言ったように、キーコードはありません
ただし、onkeypress
キーコードは存在し、 と同じ36
です。
キーコードはキーのみに関連します。$
Shift と 4 の 2 つのキーによって実現される文字です$
。onkeydown
onkeypress
編集:キーの組み合わせを使用し、組み合わせ用のキーコードを持っていることはエドワードによって指摘されました。毎日何か新しいことを学びましょう:)
onkeydown
キープレスのキーコードを検出するために、MDN によって提供された例から編集されたコードを次に示します。
これは、この SO 投稿のヘルプを使用して、Firefox に対応するように更新されたフィドルです。そのように振ると、JQuery ソリューションも機能します。
次に、この方法を使用して問題を解決しないでください。すべてのキーボードレイアウトで常に $-sign が shift+4 として入力されるとは予測できないためです。
キーコード 4 を取得し、Shift キーが押されたかどうかを確認することはできますが、これを確認することはできません!!
したがって、(データを送信する前に)フィールド内のすべての不正な文字を単純に置き換える方がよいでしょう。考えてみてください: str.replace()
また、入力ボックスの onkeyup イベントで一連の不正な文字をチェックして、入力したすべての不正な文字を効果的に置き換えることもできます!
好き:onkeyup="this.value.replace(/[your illegal characters]/gi, '')"
それはあなたが望むことをするはずです。
注意: ブラウザ入力を決して信用してはならず、受信スクリプトでこの入力をフィルタリングする必要があります!!!
幸運を!!
onkeypress - Unicode CHARACTER コードは次のとおりです: 36
onkeydown - Unicode KEY コードは次のとおりです: 52
は有効なキーではないため、 のキー コードはありませ$
ん。何らかのシフターを介してアクセスする必要があります。
通常、シフターがアクティブかどうかを確認し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; }
});