Есть ли функция в jquery.validate, которая будет reset для одного поля, такого как resetForm, для формы?
Я хочу вызвать функцию jquery для ручного удаления ошибок из одного поля и reset разметки ошибок. Существует ли функция, которая будет аналогична функции resetForm?
Ответы
Ответ 1
this сбрасывает всю форму
var validator = $("#myform").validate();
validator.resetForm();
этот будет reset только элемент 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
});
Ответ 2
Вы можете сделать следующее для проверки одного поля:
$('#your_field').valid();
Может быть, это поможет кому-то: -)
Спасибо!
Ответ 3
Невозможно найти что-либо встроенное в библиотеку проверки, но этот хак работает:
$('#email').removeClass('error').next('label.error').remove();
Ответ 4
Эта функция возможна с помощью опции focusCleanup: true
и запускает событие 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] ) );
Ответ 5
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);