1

次のように、テキストボックスに入力フィールドがあります。

<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 ハンドラーがフォーカスを変更している可能性がありますか? それを防ぐ方法はありますか?

4

0 に答える 0