相关疑难解决方法(0)

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

我有一个包含多个字段的表单,我正在使用JörnZaeffere的优秀jQuery Validation插件验证(其中一些字段添加了用于自定义验证的方法).如何规避使用指定的提交控件进行验证(换句话说,使用一些提交输入进行激活验证,但不要与其他人一起激活验证)?这与使用标准ASP.NET验证器控件的ValidationGroup类似.

我的情况:

它与ASP.NET WebForms有关,但如果您愿意,可以忽略它.但是,我更多地使用验证作为"推荐":换句话说,当提交表单时,验证会触发,而不是显示"必需"消息,"推荐"会显示"你推荐"的内容错过了以下领域....你还想继续吗?" 在错误容器中的那一点,现​​在可以看到另一个提交按钮,可以按下该按钮,忽略验证并提交.如何规避此按钮控件的表单.validate()并仍然发布?

http://jquery.bassistance.de/validate/demo/multipart/上购买和出售房屋样本允许这样做以便点击之前的链接,但它通过创建自定义方法并将其添加到验证器来实现.我宁愿不必创建自定义方法复制验证插件中已有的功能.

以下是我现在所获得的立即适用脚本的缩短版本:

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=" …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-validate

164
推荐指数
5
解决办法
16万
查看次数

如果在Ajax表单中使用,jQuery不显眼的验证会忽略提交按钮上的"取消"类

我正在尝试使用可选的客户端验证

  • ASP.NET MVC 4,
  • 不引人注目的jQuery验证,
  • 不引人注目的ajax

这很好用

下面的图片显示了我对可选的客户端验证的意思:我的表单上唯一一个字段应该包含电子邮件,因此附加了一个电子邮件验证器.

在此输入图像描述

现在我们点击保存.由于我们的文本"name @ doamin"不是有效的电子邮件,因此会显示验证摘要.与验证摘要一起,我们取消隐藏"无论如何"保存按钮.

在此输入图像描述

第二个按钮是一个正常的提交按钮class="cancel".这指示jQuery.validate.js脚本在使用此按钮提交时跳过验证.

以下是视图的代码段:

@using (Html.BeginForm())
{
    <div>
        <input data-val="true" data-val-email="Uups!" name="emailfield" />
        <span class="field-validation-valid" data-valmsg-for="emailfield" data-valmsg-replace="false">*</span>
    </div>

    <input type="submit" value="Save" />
    @Html.ValidationSummary(false, "Still errors:")
    <div class="validation-summary-valid" data-valmsg-summary="true">
        <input type="submit" value="Save anyway" class="cancel" />
    </div>
}
Run Code Online (Sandbox Code Playgroud)

一切正常.

问题

如果我切换到Ajax表单,第二个提交按钮 - "仍然保存"按预期停止工作.它的行为与正常行为相同,并且在验证成功之前阻止提交.

以下是"ajaxified"视图的代码段:

@using (Ajax.BeginForm("Edit", new { id = "0" },
        new AjaxOptions
            {
                HttpMethod = "POST",
                InsertionMode = InsertionMode.Replace,
                UpdateTargetId = "ajaxSection", …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-validate unobtrusive-validation asp.net-mvc-4 unobtrusive-ajax

6
推荐指数
2
解决办法
7734
查看次数