使用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);
答案 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
}
});
});