代码之家  ›  专栏  ›  技术社区  ›  Will Hancock

jquery validate();仅在单击一种提交按钮时进行验证

  •  13
  • Will Hancock  · 技术社区  · 14 年前

    我有一个相当完善的问题,我已经研究过了,而且还是空白的;

    脚本: 我有一个带有jquery bassistance.de的validate()插件的表单( http://docs.jquery.com/Plugins/Validation )

    但是,提交上的工作是否完美;我有两种类型的提交按钮。

    一个像往常一样提交表单,触发后端验证并返回错误或成功。

    另一种类型,是为了所有的紧张和目的,一个提交按钮到浏览器,但它告诉我的后端添加另一个输入部分(即,重复元素就业历史)。我希望用户能够添加重复元素,而不必先完成表单的其余部分。所以单击第二种提交类型,我想绕过validate();

    HTML:

    <form method="post" action="" id="ApplicationForm" name="ApplicationForm">
    
      <input id="job1" name="job1" class="required"/>
      <input type="submit" name="delete_job1" value="Delete" class="delete" />
    
      <input id="job2" name="job2" class="required"/>
      <input type="submit" name="delete_job2" value="Delete" class="delete" />
    
      <input type="submit" name="add_job" value="Add Job" class="add" />
    
      <input type="submit" name="ApplicationForm" value="Save Details" class="submit" />
    
    </form>
    

    我尝试了一个侦听器来执行下面的“真正提交”按钮,但这只会停止验证所有内容;

    $(document).ready(function()
    {
        var submitPress
    
        $(".submit").click(function()
        {
            submitPress = true;
        });
    
        if (submitPress)
        {
            $('form#ApplicationForm').validate();
        }
    });
    

    我想这是因为validate();侦听器是在页面的初始加载时设置的,而不是在提交时设置的…

    validate()是否有规则或设置;我丢失了,我可以使用,甚至是一个好的老版本的JS黑客。

    有谁能帮上忙,我就要完蛋了。

    谨上, 又迟到了,开发商

    2 回复  |  直到 10 年前
        1
  •  23
  •   goat    12 年前

    http://docs.jquery.com/Plugins/Validation/Reference#Skipping_validation_on_submit

    基本上,添加 class="cancel" 提交不想触发验证的按钮。

    <input type="submit" value="I Validate" />
    <input type="submit" class="cancel" value="I skip Validation" />
    
        2
  •  0
  •   Ankit Agrawal    10 年前

    它不起作用,因为您提供的输入元素的ID发生了这样的变化 submit_1_btnSubmit ,页面加载后

    为了消除这个错误,您可以使用 ClientIDMode="Static"

    (if you are working on asp.net)
    <asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" CssClass="Submit" ClientIDMode="Static" />
    
    else
    
    you may access `clientIDmode`  property on button control dynamically.