JQuery 验证插件 - 在应该懒惰的情况下对自定义方法进行热切验证

标签 jquery jquery-validate

验证插件似乎急切地验证我拥有的自定义方法,而它应该是惰性的,所有其他验证都是惰性发生的(即直到提交表单为止)。

自定义方法:

$.validator.addMethod("refDataAcInput", function(value, element)
{
    return ($(element).val() == "" || $(element).data("hasValidSelectedValue") != null);
}, "The item must be a valid selected item.");

验证插件初始化:

this.$form.validate({
    ignore: null,
    invalidHandler : function()
    {
        _self.initUnsavedChangesWarning.ignorePageLeaveReq = false;
        _self.setValidationMsgVisible(true);

        $("body,html").scrollTop($("#cmFormErrorReport").position().top);
    },
    submitHandler :function(form)
    {
        //Disable form submit button - prevent duplicate request for impatient users
        $("button[type=submit]", form).prop("disabled", true);
        form.submit();
    },
    showErrors : function(errorMap, errorList)
    {
        _self.updateErrors(errorList);
        this.defaultShowErrors();
    },
    errorPlacement : function(error, $element)
    {
        $element.parents("tr").children(".fieldError").append(error);
    },
    errorClass : "jqueryError"
});

有什么想法可以让这种情况延迟发生吗?

最佳答案

问题在于您已将 required 规则构建到自定义方法中。

$.validator.addMethod("refDataAcInput", function(value, element) {
    return ($(element).val() == "" || $(element).data("hasValidSelectedValue") != null);
}, "The item must be a valid selected item.");

删除 $(element).val() == "" 并替换为 this.optional(element)...

$.validator.addMethod("refDataAcInput", function(value, element) {
    return (this.optional(element) || $(element).data("hasValidSelectedValue") != null);
}, "The item must be a valid selected item.");

然后,如果您还希望该字段为 required,只需声明 required 规则以及自定义 refDataAcInput 规则即可。

插件的默认“惰性”验证现在应该可以按预期工作。

关于JQuery 验证插件 - 在应该懒惰的情况下对自定义方法进行热切验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10294270/

相关文章:

javascript - Jquery根据另一个字段的输入和目标字段的输入验证所需

javascript - 如何验证 3 个字段中的日期输入?

jquery - Symfony2 AJAX 验证

javascript - JSON.Parse 出现问题 - 控制台在 DOCTYPE 中显示错误

jquery - JSON 中的“#”用作 $AJAX url 参数问题

jquery - ColorBox:使用链接到覆盖层中全尺寸图像的图像缩略图

javascript - 通过ajax传递序列化表单和二维数组

javascript - 通过 jQuery Validate 插件使用 HTML 5 验证消息

使用 jQuery.Templates 场景进行 jQuery 验证

javascript - ajax响应没有写入html页面怎么办?