他のすべての文字をテキスト入力に使用しないようにしようとしています。
取得するので$
あなたはシフト -keyと -keyを押す必要があります。私はあなたがこれのような何かのためのkeyCodeをどう取得するか分からないのですか?
他のすべての文字をテキスト入力に使用しないようにしようとしています。
取得するので$
あなたはシフト -keyと -keyを押す必要があります。私はあなたがこれのような何かのためのkeyCodeをどう取得するか分からないのですか?
キーコードはキーにのみ関連しています。 $
はonkeydown
Editを使用しているときにキーコードが$
に対して明示的に存在しない二つの鍵を通じて達成文字、Shiftキーと4です:それはonkeypress
は、キーの組み合わせを使用し、キーコードのために持っていないことをエドワードによって指摘されました組み合わせ。毎日何か新しいことを学んでください:
Here's some code、MDNによって提供されたonkeydown
の例から編集して、キー押鍵のキーコードを検出してください。
Here's the fiddlethis S.O. postのヘルプを使用して、Firefoxに対応するように更新されました。あなたがそのように振ると、JQueryソリューションも機能します。
あなたの編集のフィドルはfirefox12でこの結果を与えます: '押されたキーコード:0'(onどのキーを押しても..) – GitaarLAB
@ GitaarLABどのくらい奇妙です。 IEとChromeで動作します。私はFirefoxが 'onkeypress'をサポートしないとは想像できませんが、onkeydownのためにそれを入れ替えることはFirefoxでうまくいきます。 –
チェックアウト[this S.O. Firefoxのonkeypressに関する情報のスレッド](http://stackoverflow.com/questions/4496910/onkeypress-event-not-working-in-firefox)唯一の疑問もある –
DONTはこの方法で問題を解決します。すべてのキーボードレイアウトに常に$記号がshift + 4として入力されるとは予測できません。
あなたはまだキーコード4を取得して、シフトが押されたかどうかを確認できますが、これを確認することはできません!!
したがって(データを提出する前に)フィールドのすべての不正な文字を置き換える方がよいでしょう。考えてみましょう:str.replace()
入力ボックスのonkeyupイベントで不正な文字をチェックして、入力時に無効な文字をすべて置き換えることもできます。
Like:onkeyup="this.value.replace(/[your illegal characters]/gi, '')"
これは、あなたが望むことを行うはずです。
注意:ブラウザの入力を信頼してはいけません。受信スクリプトでこの入力をフィルタリングする必要があります。
Good Luck !!
onkeypress
キーコードが存在し36
に等しい、が以前ngmiceli
によって前記何らonkeydown
キーコードは、存在しません。
+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; }
});
れるonkeypress - Unicodeの文字コードがある:36
にonKeyDown - Unicodeのキーコードです:52
可能性のある重複した[どのようなものですJavaScriptのKeyCodes?](http://stackoverflow.com/questions/5603195/what-are-the-javascript-keycodes) –