使用showErrors()删除验证消息集

时间:2013-11-15 17:29:49

标签: jquery jquery-validate

使用showErrors() function JQuery验证,我手动向表单添加错误:

var errors = {};
errors['Field1'] = 'Field1 has an error';
errors['Field2'] = 'Field2 has an error';
errors['Field3'] = 'Field3 has an error';
$('form').validate().showErrors(errors);

为什么我不能使用$('form').validate().resetForm();删除这些内容?这样做的唯一方法似乎是将所有索引重置为null:

var errors = {};
errors['Field1'] = null;
errors['Field2'] = null;
errors['Field3'] = null;
$('form').validate().showErrors(errors);

1 个答案:

答案 0 :(得分:2)

使用showErrors()回调函数时,手动执行此回调函数时,您还必须手动“撤消”。

.resetForm()方法仅通过清除字段的无效状态来重置验证插件。由于插件会自动处理默认错误消息,因此resetForm()调用会消失这些消息。

由于您未使用自动生成的错误,因此resetForm()对您的自定义消息摘要不起作用。

但是,还有另一个名为errorContainer的选项会与错误一起切换。如果您将错误摘要放在此容器中,它将自动切换错误。

<强> HTML

<div id="summary"></div>

<强>的jQuery

$(document).ready(function () {

    $('#myform').validate({
        // other rules and options,
        errorContainer: "#summary",  // will toggle along with errors
        showErrors: function (errorMap, errorList) {
            // your custom function
        }
    });

});

DEMO:http://jsfiddle.net/JQjWu/