2012-04-04 16 views
0

我使用JQuery验证和jquery tabs创建一个多标签形式如何验证输入框在多标签

假设一个简单的形式:

标签1输入地址,标签2对于输入名称,标签3提交

HTML

<ul class="nav nav-tabs"> 
    <li class="active"><a href="#home">address</a></li> 
    <li><a href="#profile">name</a></li> 
    <li><a href="#submit">submit</a></li> 
</ul> 

<form id="selectList" method="post" action="finish.php"> 
<div class="tab-content"> 
    <div class="tab-pane active" id="home">//input box address</div> 
    <div class="tab-pane" id="profile">//input box name</div> 
    <div class="tab-pane" id="messages">//submit button</div> 
</div> 
</form> 

个JS验证

$("#selectList").validate({ 
     rules: { 
     "selectList[]": { 
       required: true, 
       minlength: 1 
      } 
     } 
    }) 

}); 

的问题是:

  1. 正如你可以看到,虽然所有的选项卡的形式里面,但是,如果提交按钮是在选项卡3,它无法验证输入框在选项卡1,2,我如何具体验证规则为不同的选项卡?

谢谢

更新时间:

$("#optionalform").validate({ 
    ignore:'' 
}); 

使用这种独立可以帮助这样做,问题是,我无法设置规则,以及数据选择器插件等功能一个标签不工作,它可能跳过我所有的元素?

$(document).ready(function(){ 

$('.tabbable').tabs(); 
$("#selectList").validate({ 
    ignore:'' 

     rules: { 
     "selectList[]": { 
       required: true, 
       minlength: 1 
      } 
     } 
    }) 
      $('#dd').datebox({ 
    required:true 
}); 



}); 


$(function(){ 
    $("#closeTab").click(function() { 
      window.parent.$('#tt').tabs('close','Add Campaign'); 
      location.reload();  
    }); 
}); 
+0

按照缩进和间距的良好做法不会有什么伤害,但是你的语法错误很多。在'ignore:'后面你忘了逗号',''。虽然我不确定你用一个空参数实现了什么。 – Sparky 2012-04-04 17:20:40

回答

1

您需要在每次更改标签时调用验证。

$('.selector').tabs({ 
    select: function(event, ui) { ... } //run validation here? 
}); 
+0

谢谢,选择器意味着tab的id? – user782104 2012-04-04 16:35:28

+0

不太明白如何表达,你介意提供一个简单的例子吗? – user782104 2012-04-04 16:42:49

+0

其实我有些东西但它有一些缺陷 – user782104 2012-04-04 17:07:16