在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);