0

jQuery UIタブを使用して、いくつかのフォームを切り替えています。次に、タブがクリックされたときに最初の入力フィールド
を追加する必要があります。focus()

インデックス2のタブをクリックすると、アラートが発生しますが、発生しfocus()ません。

  jQuery("#newRegistration").tabs({
    fx: { opacity: 'toggle', speed: 'fast' },
    select: function(event, ui) {
      if(ui.index == 0) { jQuery('#form1_name').focus(); }
      if(ui.index == 1) { jQuery('#form2_name').focus(); }
      if(ui.index == 2) { alert('this shows'); jQuery('#form3_name').focus(); }
    }
  });

フォーカスが機能しないのはなぜですか?

フォームデータは次のようになります(短いバージョン):

<div id="registrationforms">
  <form id="form1_data_form" class="ui-tabs-hide" action="" method="post"></form>
  <form id="form2_data_form" class="ui-tabs-hide" action="" method="post"></form>

  <form id="form3_data_form" class="" action="http://mysite.com/register/" method="post">
    <input type="text" value="" maxlength="40" name="form3_name" id="form3_name">
  </form>
</div>
4

1 に答える 1

2

showイベントの代わりにイベントを使用しselectます。

jQuery("#newRegistration").tabs({
    fx: { opacity: 'toggle', speed: 'fast' },
    show: function(event, ui) {
      if(ui.index == 0) { jQuery('#form1_name').focus(); }
      if(ui.index == 1) { jQuery('#form2_name').focus(); }
      if(ui.index == 2) { alert('this shows'); jQuery('#form3_name').focus(); }
    }
});

実際の例 - http://jsfiddle.net/HN9uK/

于 2012-05-21T13:39:56.863 に答える