2012-02-28 12 views
0

私はDojoの新しいon moduleを使用してイベントを追加し始めました。それは正常に動作しますが、今私は問題に遭遇しました。 keypressイベントを使用すると、押されたキーから文字値(「2」や「b」など)を取得できないようです。以前はbehaviorモジュールとconnectモジュールを使用していましたが、e.keyCharまたはe.charOrCodeを使用して取得できましたが、現在は未定義です。Dojoのモジュール上のKeypressイベント

私はこのように設定したイベントがあります。

on(element, 'keypress', function(e) 
{ 
    console.log(e.keyCode); //works, but not what I need 
    console.log(e.charOrCode); //undefined 
    console.log(e.keyChar); //undefined 
}); 

このモジュールを使用しているとき、私は押されたキーの文字を取得するにはどうすればよいですか?

答えて

1

この場合、希望する文字値を取得するために、012-をJS-native String.fromCharCode()と組み合わせて使用​​することをお勧めします。

on(element, 'keypress', function(e) { 
    var character = String.fromCharCode(e.keyCode); 
    if (character === 'a') { // do a stuff } else { // do something else } 
} 
+0

ありがとうございました!なぜ私は 'e.keyChar'をもう使用できないのか分かりませんか?ドキュメントはどこにでも書かれているようですが、 'on'モジュールでは消えてしまいました。もう1つの質問は、すべてのブラウザで安全ですか?私はフレームワーク/ツールキットを使うのが好きです。 – joakimdahlstrom

+0

この[ページ](http://unixpapa.com/js/key.html)のセクション3.1を参照してください。 'keyCode'がすべてのブラウザで使用される唯一の値であることがわかります。それでは、それぞれがいくつかのキーのための特別な処理を持っていると言われました。私はdojoで 'keypress 'イベント処理を実装しているコードを見て、これらの違いのいくつかを正規化しようとしていることを確認できます。 –

+0

ああ、それは素晴らしいです。 – joakimdahlstrom

関連する問題