Как очистить сообщения об ошибках проверки JQuery? - PullRequest
159 голосов
/ 18 января 2010

Я использую плагин проверки jQuery для проверки на стороне клиента.Функция editUser() вызывается при нажатии кнопки «Редактировать пользователя», которая отображает сообщения об ошибках.

Но я хочу удалить сообщения об ошибках в моей форме, когда я нажимаю кнопку «Очистить», которая вызываетфункция clearUser().

function clearUser() {
    // Need to clear previous errors here
}

function editUser(){
    var validator = $("#editUserForm").validate({
        rules: {
            userName: "required"
        },
        errorElement: "span",
        messages: {
            userName: errorMessages.E2
        }
    });

    if(validator.form()){
        // Form submission code
    }
}

Ответы [ 25 ]

2 голосов
/ 22 апреля 2010

Я тестировал с:

$("div.error").remove();
$(".error").removeClass("error");

Все будет в порядке, когда вам понадобится подтвердить его еще раз.

1 голос
/ 22 сентября 2017
var validator = $("#myForm").validate();
validator.destroy();

Это уничтожит все ошибки проверки

1 голос
/ 06 декабря 2018

Ни одно из других решений не помогло мне. resetForm() четко задокументировано для сброса действительной формы, например, удалить данные из формы, что не то, что я хочу. Иногда случается так, что иногда этого не делают, а просто удаляют ошибки. Что наконец-то сработало для меня, так это:

validator.hideThese(validator.errors());
0 голосов
/ 17 октября 2018

Пробовал каждый ответ.Единственное, что сработало для меня:

$("#editUserForm").get(0).reset();

Использование:

jquery-validate/1.16.0

jquery-validation-unobtrusive/3.2.6/
0 голосов
/ 20 июня 2018

validator.resetForm() метод очистки текста ошибки.Но , если вы хотите удалить КРАСНУЮ границу из полей, вы должны удалить класс has-error

$('#[FORM_ID] .form-group').removeClass('has-error');
0 голосов
/ 22 мая 2018

Если вы хотите скрыть проверку на стороне клиента, которая не является частью отправки формы, вы можете использовать следующий код:

$(this).closest("div").find(".field-validation-error").empty();
$(this).removeClass("input-validation-error");
0 голосов
/ 17 ноября 2017

В моем случае помог с подходом:

$(".field-validation-error span").hide();
0 голосов
/ 23 декабря 2015

$(FORM_ID).validate().resetForm(); все еще не работает должным образом.

Я очищаю форму с resetForm().Это работает во всех случаях, кроме одного !!

Когда я загружаю любую форму через Ajax и применяю проверку формы после загрузки моей динамической HTML, затем после того, как я пытаюсь сбросить форму с помощью resetForm(), и это не удаетсяа также сбрасывает все проверки, которые я применяю к элементам формы.

Поэтому, пожалуйста, не используйте это для загруженных Ajax форм ИЛИ вручную инициализированной проверки.использовать ответ Ника Крейвера для такого сценария, как я объяснил.

0 голосов
/ 24 февраля 2014

Я только что сделал

$('.input-validation-error').removeClass('input-validation-error');

для удаления красной границы в полях ошибок ввода.

0 голосов
/ 16 февраля 2014

Если вы также хотите сбросить numberOfInvalids(), добавьте следующую строку в функцию resetForm в jquery.validate.js номер строки файла: 415.

this.invalid = {};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...