【问题标题】:jQuery: Validating fields before submitting (multistep form)jQuery:在提交之前验证字段(多步表单)
【发布时间】:2012-06-15 14:31:32
【问题描述】:

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

js fiddle: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>

$(function() {
  $('#step1_btn').click(function() {
    $('#step1').hide();
    $('#step2, #submit_btn').show();        
  });
});​

你们建议我如何实现这一目标?

【问题讨论】:

    标签: javascript jquery forms


    【解决方案1】:

    jQuery validate 有一个非常简洁的设置,可以让您忽略对隐藏字段的验证。因此,您可以处理步骤的显示/隐藏逻辑,并且为了验证,您可以这样做:

    正如这表明:ignore hidden

    $("form").validate({
       ignore: ":hidden"
    });
    

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

    我注意到您的表单上没有任何验证类,所以我假设您正在其他地方处理它。以防万一,您可以告诉 jQuery 通过 css 类验证您的规则,如下所示:&lt;input type="text" class="required digits"/&gt;

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

    【讨论】:

    • 感谢您的回复!但是,当按下提交按钮时,这段代码不是在验证字段吗?我需要在按下“继续第 2 步”按钮时验证字段,以防止用户继续使用无效字段。
    • 在您的点击事件中,您只需检查if($('form').valid())。顺便说一句,你应该给你的表单一个 id 或其他东西,这样你就可以更直接地引用它。
    • 谢谢!这就说得通了。顺便说一句,这可能是一个愚蠢的问题,但这个 jquery 验证是否默认实现到 jquery 中?还是我需要下载一个单独的插件?
    • 这是一个单独的插件,在我链接的那个页面上。它被称为 jQuery.validate
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多