2011-12-07 18 views
2

ユーザーがテキストボックスで@キーを押したときを検出しようとしています。私はこのようなキーアップイベントを処理するためにJQueryを使用することができます。@キーが押されたときの検出

$('#target').keyup(function(event) { 

}); 

しかし、ここから@文字をテストするにはどうすればよいですか?私はevent.whichを使用してキーコードを取得できることを知っています。しかしこの場合、私はシフトをチェックする必要があります - 技術的にはこれは問題ではありませんが、@キーが別の言語設定で動き回ることができ、これが矛盾しているかもしれないと心配しています。たぶん私は間違って心配しています。私はいつもそれに頼ることができますSHIFT + 192

理想的には私はあなたがテストする代わりにkeypressイベントを使用する場合があります任意の助け

+2

「キーアップ」の代わりに「キー押し」を見ることができますか?これは本当に唯一の信頼できる方法です(私が知っている、特にキーコードマッピングのバリエーションのため)。 – Pointy

答えて

5

64は、アットマークのアスキーあるとして、event.which == 64をチェックしてください(テストしますが、動作するはずではない)

$("#target").keypress(function(event) { 
    if (event.which == 64) { 
    alert("weehee"); 
    } 
}); 

これが失敗した場合、ユーザーがキーを離したとき、あなたは(keyUpイベント後に確認することができます)、もし彼がテキストフィールドに入力した最後の文字が@記号で、それに応じて行動すれば。

シャイ

+0

'event.keyCode ==" @ "charCodeAt(0)'のために効果的に行ったので、文字列値を使って変更できます;) – musefan

+0

:)良い解決策。あなたの問題は解決しました。 –

4

ため、後で簡単に設定可能にするために、次の...

event.something == "@"; 

おかげのような何かをしたいと思いますキーではなく特定の文字を使用します。参照:http://api.jquery.com/keypress/

+0

あなたは正しいです、それは私が使用したいものです:D – musefan

関連する問題