2011-10-18 10 views
10

ユーザがを押している間にボタンにフォーカスを設定しようとしています。テキストボックスにキーを入力してください。しかし、それは動作していません。私はインターネット エクスプローラ  8ブラウザを使用しています。何か不足していますか?ボタンのフォーカスを設定していません

$("input.Box").live('keydown', function(e) { 
    if (e.keyCode == 13) { 
     e.preventDefault(); 
     $("#button").focus(); // Not working? 
    } 
}); 

答えて

6

マイクロソフトではe.keyCodeが好きではなく、代わりに独自の構文e.whichを使用することを決めました。

あなたは両方をチェックする必要があります。

$("input.Box").live('keydown', function(e) { 
    var keyCode = (window.event) ? e.which : e.keyCode; 

    if (keyCode == 13) 
     e.preventDefault(); 
     $("#button").focus(); // Not working? 
    } 
}); 
+0

私のためにe.keyCode == 13はうまく動作するようです.. – Lamps

1

本当に名前が正しいですか? .NETに名前を変更する習慣があります。あなたは言語や環境を指定しません。

クラスセレクタを使用してください。ボタンにクラス名class="Test"を入力し、$(".Text").focus()を使用して選択します。

+0

名前が正しいです。 – Lamps

9

問題はIEが十分に迅速に対応することができないということですので、あなたはlive関数が入力されるとの間に小さな遅延を追加する必要がある、とするとき.focus()が呼び出されます。だから、Blenderはあなたの問題を解決する必要があります示唆されているようにe.keyCodee.whichを使用と併せて、

setTimeout(function() { 
$('#button').focus(); 
}, 100); 

これと

$("#button").focus();

を交換してください。

+0

私のためにe.keyCode == 13は正常に動作するようです。 – Lamps

-1

フォーカスを設定する前に、DOMの準備ができていること、要素が存在することを確認してください。

+1

彼はドキュメントの読み込みにボタンを集中させようとしていません。 –

関連する問題