jQuery:在提交之前验证字段(多步表单)

imj*_*mjp 4 javascript forms jquery

我有一个由两个步骤组成的表格.我想做的是在继续下一步之前验证每一步; 用户不应该进入步骤1的第2步的字段无效.

js小提琴:http://jsfiddle.net/Egyhc/
您可以在下面找到该表单的简化版本:

<form>
  <div id="step1" style="display: block;">
    <label for="first_name">First Name</label>
    <input type="text" value="" name="first_name" id="FirstName"/>

    <label for="last_name">Last Name</label>
    <input type="text" value="" name="last_name" id="LastName"/>
  </div>


  <div id="step2" style="display: none;">
    <label for="first_name">Address</label>
    <input type="text" value="" name="address" id="Address"/> 
  </div>

  <a href="#" id="step1_btn">Continue to step 2</a>
  <input type="submit" id="submit_btn" value="Verstuur" style="display: none;" />
</form>
Run Code Online (Sandbox Code Playgroud)

$(function() {
  $('#step1_btn').click(function() {
    $('#step1').hide();
    $('#step2, #submit_btn').show();        
  });
});?
Run Code Online (Sandbox Code Playgroud)

你们怎么建议我实现这个目标?

Mil*_*ric 6

有一个非常巧妙的jQuery验证设置,可以忽略对隐藏字段的验证.因此,您可以处理步骤的显示/隐藏逻辑,并进行验证,您可以这样做:

这表明:忽略隐藏

$("form").validate({
   ignore: ":hidden"
});
Run Code Online (Sandbox Code Playgroud)

如果您需要检查除默认表单提交之外的其他内容的验证,您可以使用如下valid方法:$("form").valid().

我注意到你的表单上没有任何验证类,所以我假设你正在处理其他地方.如果你不是,你可以告诉jQuery通过css类验证你的规则,如下所示:<input type="text" class="required digits"/>

在此处查看更多信息:http://bassistance.de/2008/01/30/jquery-validation-plugin-overview/