使用jQuery验证插件显示摘要和单个错误消息

chr*_*riz 18 validation ajax jquery jquery-validate

如何显示jQuery插件的各个错误消息和摘要?

我实际上发现了一个类似的问题,但它只引用了我可以使用的一些钩子,但我不知道从哪里开始.

我得到了显示个别错误消息的部分,但我需要在提交的警告框中显示摘要,并且可以在此处找到插件.

刚刚发现了如何,感谢大卫的代码,以及我的后续问题 - 警报框将是"名字:请输入有效的名字".

代码如下:

$(document).ready(function() {
    var submitted = false;
    ('.selector').validate({
        showErrors: function(errorMap, errorList) {
            if (submitted) {
                var summary = "You have the following errors: \n";
                $.each(errorMap, function(key, value) {
               summary += key + ': ' + value + "\n";
                });
                alert(summary);
                submitted = false;
            }
            this.defaultShowErrors();
        },
        invalidHandler: function(form, validator) {
            submitted = true;
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

Dav*_*ton 22

正如链接的问题showErrors所示,只要显示错误,就会调用回调.您可以使用它来创建摘要并提醒它.然后,您可以调用this.defaultShowErrors()以显示正常的个别错误消息.

默认情况下,会为很多事件(提交,键盘,模糊等)调用showErrors.您可以禁用它们,也可以使用invalidHandler仅在提交无效表单时调用的方法.

例:

$(document).ready(function() {
    var submitted = false;
    ('.selector').validate({
        showErrors: function(errorMap, errorList) {
            if (submitted) {
                var summary = "You have the following errors: \n";
                $.each(errorList, function() { summary += " * " + this.message + "\n"; });
                alert(summary);
                submitted = false;
            }
            this.defaultShowErrors();
        },          
        invalidHandler: function(form, validator) {
            submitted = true;
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

有关可以传递给方法的选项的完整列表,请参见此处validate.