2012-08-08 13 views
6

他のすべての文字をテキスト入力に使用しないようにしようとしています。

取得するので$あなたはシフト -keyと -keyを押す必要があります。私はあなたがこれのような何かのためのkeyCodeをどう取得するか分からないのですか?

+0

可能性のある重複した[どのようなものですJavaScriptのKeyCodes?](http://stackoverflow.com/questions/5603195/what-are-the-javascript-keycodes) –

答えて

5

キーコードはキーにのみ関連しています。 $onkeydown

Editを使用しているときにキーコードが$に対して明示的に存在しない二つの鍵を通じて達成文字、Shiftキーと4です:それはonkeypressは、キーの組み合わせを使用し、キーコードのために持っていないことをエドワードによって指摘されました組み合わせ。毎日何か新しいことを学んでください:

Here's some code、MDNによって提供されたonkeydownの例から編集して、キー押鍵のキーコードを検出してください。

Here's the fiddlethis S.O. postのヘルプを使用して、Firefoxに対応するように更新されました。あなたがそのように振ると、JQueryソリューションも機能します。

+0

あなたの編集のフィドルはfirefox12でこの結果を与えます: '押されたキーコード:0'(onどのキーを押しても..) – GitaarLAB

+0

@ GitaarLABどのくらい奇妙です。 IEとChromeで動作します。私はFirefoxが 'onkeypress'をサポートしないとは想像できませんが、onkeydownのためにそれを入れ替えることはFirefoxでうまくいきます。 –

+0

チェックアウト[this S.O. Firefoxのonkeypressに関する情報のスレッド](http://stackoverflow.com/questions/4496910/onkeypress-event-not-working-in-firefox)唯一の疑問もある –

2

DONTはこの方法で問題を解決します。すべてのキーボードレイアウトに常に$記号がshift + 4として入力されるとは予測できません。
あなたはまだキーコード4を取得して、シフトが押されたかどうかを確認できますが、これを確認することはできません!!

したがって(データを提出する前に)フィールドのすべての不正な文字を置き換える方がよいでしょう。考えてみましょう:str.replace()
入力ボックスのonkeyupイベントで不正な文字をチェックして、入力時に無効な文字をすべて置き換えることもできます。
Like:onkeyup="this.value.replace(/[your illegal characters]/gi, '')"
これは、あなたが望むことを行うはずです。

注意:ブラウザの入力を信頼してはいけません。受信スクリプトでこの入力をフィルタリングする必要があります。

Good Luck !!

5

onkeypressキーコードが存在し36に等しい、が以前ngmiceli

によって前記何らonkeydownキーコードは、存在しません。

JavaScript Event KeyCode Test Page

+0

+1ありがとうございます! –

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; } 
}); 
0

れるonkeypress - Unicodeの文字コードがある:36

にonKeyDown - Unicodeのキーコードです:52

関連する問題