如何禁用默认验证通知?

时间:2011-04-16 03:37:39

标签: jquery jquery-plugins jquery-validate

我正在尝试使用jquery validate plugin验证表单,我很难找到是否可以覆盖显示错误消息的默认验证方法。默认操作似乎是在无效字段后立即显示与表单字段有关的错误消息。

而不是这样做,我只想突出显示错误的字段,并在表单顶部显示错误列表。通过使用invalidHandler我在validate插件的文档中找到了与此类似的内容但是这不会禁用在无效字段旁边显示错误消息,也不允许我捕获错误消息并将它们放在顶部形式。

$("#myform").validate({
    debug: true,
    invalidHandler: function(form, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {
            var message = errors == 1
                ? 'You missed 1 field. It has been highlighted'
                : 'You missed ' + errors + ' fields. They have been highlighted';
            $("div#errorMessage span").html(message);
            $("div#errorMessage").show();
        } else {
            $("div#errorMessage").hide();
        }
    },
    rules: {
        name: (required: true}
    },
    messages: {
        name: "You must give your name"
    }
});

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

Jquery Validate有许多选项可用于自定义错误消息的显示方式。你可以看到这里的所有选项

http://docs.jquery.com/Plugins/Validation/validate#toptions

errorLabelContainer在您定义的元素中显示错误消息,而不是在字段旁边显示。

$("#myform").validate({
    debug: true,
    errorLabelContainer: "div#errorMessage",
    wrapper: "li", 
    rules: {
        name: (required: true}
    },
    messages: {
        name: "You must give your name"
    }
});

wrapper选项允许您将消息包装在元素中,在本例中为li。

您可以使用突出显示和取消突出显示来管理包含错误的元素的格式。

答案 1 :(得分:0)

$(".selector").validate({
   showErrors: function(errorMap, errorList) {
        $("#summary").html("Your form contains "
                                   + this.numberOfInvalids() 
                                   + " errors, see details below.");
    }
 })

http://docs.jquery.com/Plugins/Validation/validate#options