在jquery.validate中是否有一个函数可以重置单个字段,就像resetForm对表单一样?

我想调用一个jquery函数来手动从单个字段中删除错误并重置错误标记。 是否有一个与resetForm函数类似的函数?

这会重置整个表单

var validator = $("#myform").validate(); validator.resetForm(); 

将仅重置name元素

 $("#skip").click(function() { var rules = $("#name").removeAttrs("min max"); // remove min and max $("#form").submit(); // submit, as there are no attributes, it will not have an error $("#name").attr(rules); // add it again so you can validate it }); 

您可以执行以下操作来validation单个字段:

 $('#your_field').valid(); 

也许它会帮助某人:-)

谢谢!

找不到内置到validation库的任何内容但是这个hack有效:

 $('#email').removeClass('error').next('label.error').remove(); 

通过focusCleanup: true选项可以实现此function,并在所需元素上触发focusin事件。 但是并不总是希望触发这个事件。 显然,你可以使用在focusin上运行的插件的内部代码,并在外部调用它,如下所示:

 /*get your element and containing validated form*/ var $that = $('#desired_elemenet'); var $form = $that.closest('form'); /*get validator object for the form*/ var validator = $form.validate(); /*use internal code of a plugin to clear the field*/ if (validator.settings.unhighlight) { validator.settings.unhighlight.call( validator, $that[0], validator.settings.errorClass, validator.settings.validClass ); } validator.hideThese( validator.errorsFor( $that[0] ) ); 
 var form = $('#form'); var validator = form.validate(); // Validate single field from that form. var myfield = $('#myfield'); myfield.removeData('previousValue').removeAttr('aria-invalid'); validator.resetElements(myfield);