【问题标题】:jQuery validate(); Only validate on click of one type of submit buttonjQuery 验证();仅在单击一种类型的提交按钮时验证
【发布时间】:2011-01-15 10:57:46
【问题描述】:

我有一个非常令人费解的问题,我已经研究过并提出了空白;

场景: 我有一个表单,带有 jQ​​uery 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 的好 hack。

非常感谢任何可以提供帮助的人,我已经筋疲力尽了。

此致, 加班,再次,开发人员

【问题讨论】:

    标签: javascript jquery jquery-validate validation


    【解决方案1】:

    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" />
    

    【讨论】:

    • 干杯克里斯,那是獾...不知道我是怎么错过的。想想我昨晚进入了暮光区,不得不回家。
    • sweeeet... 使用 jquery mobile,认为它可能是一个 data-* 属性。谢谢@rambo 编码器
    • 自 2015 年起,class="cancel" 现已弃用。现在添加“formnovalidate”属性。点击链接查看最新文档。
    【解决方案2】:

    它不起作用,因为您为输入元素提供的 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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      相关资源
      最近更新 更多