2011-07-19 4 views
1

jQueryがevent.which、event.keyCodeイベントで返すものを把握しようとしていました。私がタブキーを使用するとき、ぼかしイベント中に。それは9を返すことになっていないのですか?私もkeypressで試しましたが、それを認識しません。JavaScript:jQuery Tab charCode

http://jsfiddle.net/LvDGP/2/

私が何か間違ったことをやっていますか?

答えて

2

​​を使用してタブキーを取得する必要があります。 keypressはすべてのブラウザでTABを起動せず、blurは何が原因でオブジェクトにフォーカスが失われたのかを知らせません。

$("#test").keydown(function(e){ 
    console.log("keydown: ",e); //-> jQuery.Event > which: 9 
}); 

デモ:http://jsfiddle.net/LvDGP/3/

+1

すべての良いアドバイスがありますが、いくつかのブラウザのタブキー(Firefoxなど)。 –

1

あなたはタブキーを認識する​​またはkeyupを使用する必要があります:あなたのように、 "9" を記録します

$("#test").keydown(function(e){ 
    console.log(e.keyCode); 
}); 

期待される。この理由は、keypressは文字キーのみで発生するのに対し、​​はすべてのキー(TAB、矢印キーなど)に対して起動します。

+0

'keyup'は、タブイングの結果としてフォーカスを取得するフィールドでは発生するが、タブアウトの結果としてフォーカスを失うフィールドでは発生しないので、' keyup'は混乱する可能性があります。 –

+0

はい、そうです。だから私はこの例で 'keydown'を使ったのです。私はちょうど完全であるために 'keyup'を言いました、それは非文字キーにも反応するからです。 –