验证组时出现奇怪的错误清除行为

时间:2013-07-22 19:05:48

标签: javascript jquery jquery-validate

我正在使用jquery validate,并设置一个组,以便在我的任何必填字段无效时只显示一条错误消息。错误被正确抛出,但是每当有多个无效字段时我都会遇到问题。出于某种原因,jquery会在清除第一个无效字段时清除错误消息。它似乎没有考虑到可能还有其他无效字段尚未修复的事实。我需要保留错误消息,直到组中的最后一个无效项目被清除。

这是我正在使用的代码:

jQuery(function ($) {
    jQuery.validator.messages.required = "Please complete the required fields.";
    $("#quote").validate({
        errorLabelContainer: "#error-note",
        rules: {
            serviceDate: "required",
            recurringBasis: "required"
        },
        highlight: function (element) {
            $(element).parent().prev().prev('span').addClass("error");
        },
        unhighlight: function (element) {
            $(element).parent().prev().prev('span').removeClass("error");
        },
        groups: {
            collecive: "serviceDate recurringBasis"
        }
    });

});

这里有a Fiddle来帮助演示我正在谈论的内容。

我需要群组错误消息“请填写必填字段”。保持直到该组中的最后一个无效项目被清除。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

Since this seems to be a bug,这里没有太多可以做的事情。 (我相信有关修复错误和修改插件源代码的讨论应仅限于开发人员的官方GitHub存储库。

否则,将onkeyuponfocusout选项设置为false会强制使用该表单 验证测试仅在提交按钮的click事件发生时发生。不理想,但在修复错误之前可能是一个可接受的解决方法。

$("#quote").validate({
    onkeyup: false,
    onfocusout: false,
    ...

http://jsfiddle.net/vRWgv/3/