在jQuery UI select事件之后无法将注意力设置在输入字段上

时间:2012-05-21 09:13:10

标签: html5 jquery-ui

我正在使用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>

1 个答案:

答案 0 :(得分: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/