次のように、テキストボックスに入力フィールドがあります。
<div id="box_password2" style="display:none;">
<span style="float:left;margin: 10px 0px 0px 20px;">Verify password:</span>
<input type="password" id="field_password2" class="auto" maxlength="10" style="margin: 10px 0px 0px 10px; width: 80px; float: left;" value="">
</div>
次のように、ボックス(および含まれている入力フィールド)を再表示し、入力フィールドにフォーカスを設定したいと思います。
$('#box_password2').fadeIn("fast", function() {
$("#field_password2").focus();
console.log('Active element: '+$(":focus").attr('id'));
});
しかし、これはうまくいきません。フォーカスが見えない場所にあり、コンソールにアクティブな要素が未定義として表示されます。なぜこれが機能しないのですか?
アップデート
onfocus アラートを追加し、field_password2 DOES はフォーカスを取得しますが、どういうわけか NEXT フィールドに失われます。問題があれば、上記の JavaScript は別の入力フィールドの onchange イベントにあります。私のコードがフォーカスを変更した後、onchange ハンドラーがフォーカスを変更している可能性がありますか? それを防ぐ方法はありますか?