首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery验证插件:禁用对指定提交按钮的验证

jQuery验证插件:禁用对指定提交按钮的验证
EN

Stack Overflow用户
提问于 2008-10-15 06:14:56
回答 9查看 178.8K关注 0票数 170

我有一个包含多个字段的表单,我正在使用Jörn Zaeffere优秀的jQuery验证插件对其进行验证(其中一些带有为自定义验证添加的方法)。如何使用指定的提交控件规避验证(换句话说,对某些提交输入触发验证,但不对其他输入触发验证)?这将类似于具有标准ASP.NET验证器控件的ValidationGroups。

我的情况:

它是由ASP.NET WebForms提供的,但是如果你愿意,你可以忽略它。但是,我更多地将验证用作“建议”:换句话说,当表单提交时,验证将触发,但显示的不是“必需”消息,而是“建议”,它会显示类似“您遗漏了以下字段……是否仍要继续?”的内容。此时,在error容器中有另一个可见的submit按钮,可以按下该按钮忽略验证并提交。如何绕过此按钮控件的表单.validate()并仍然开机自检?

http://jquery.bassistance.de/validate/demo/multipart/上的买卖房屋示例允许这样做,以便点击前面的链接,但它是通过创建自定义方法并将其添加到验证器来实现这一点的。我不希望创建自定义方法复制验证插件中已有的功能。

以下是我现在得到的立即适用的脚本的简短版本:

代码语言:javascript
复制
var container = $("#<%= Form.ClientID %> div.validationSuggestion");

$('#<%= Form.ClientID %>').validate({          
    errorContainer: container,
    errorLabelContainer: $("ul",container),
    rules: {
        <%= YesNo.UniqueID %>: { required: true },
        <%= ShortText.UniqueID %>: { required: true } // etc.

    },
    messages: {
        <%= YesNo.UniqueID %>: 'A message.',
        <%= ShortText.UniqueID %>: 'Another message.' // etc.
    },
    highlight: function(element, errorClass) {
        $(element).addClass(errorClass);
        $(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
        $(element.form).find("label[for=" + element.id + "]").removeClass("valid");
    },
    unhighlight: function(element, errorClass) {
        $(element).removeClass(errorClass);
        $(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
        $(element.form).find("label[for=" + element.id + "]").addClass("valid");
    },
    wrapper: 'li'
}); 
EN

回答 9

Stack Overflow用户

发布于 2010-05-21 12:07:36

另一种(未记录的)方法是调用:

代码语言:javascript
复制
$("form").validate().cancelSubmit = true;

在按钮的单击事件上(例如)。

票数 109
EN

Stack Overflow用户

发布于 2015-07-28 07:26:33

还有另一种(动态)方式:

代码语言:javascript
复制
$("form").validate().settings.ignore = "*";

要重新启用它,我们只需重新设置默认值:

代码语言:javascript
复制
$("form").validate().settings.ignore = ":hidden";

来源:https://github.com/jzaefferer/jquery-validation/issues/725#issuecomment-17601443

票数 21
EN

Stack Overflow用户

发布于 2015-04-14 05:09:51

将formnovalidate属性添加到输入

代码语言:javascript
复制
    <input type="submit" name="go" value="Submit"> 
    <input type="submit" formnovalidate name="cancel" value="Cancel"> 

现在不推荐添加class="cancel“

有关在此link上提交时跳过验证的信息,请参阅文档

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/203844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档