как повторно запустить проверку в текстовом поле после того, как пользователь внес изменения - PullRequest
0 голосов
/ 02 марта 2012

У меня есть текстовое поле, которое требуется. когда пользователь нажимает кнопку отправки, проверка запускается и запрещает отправку формы, если не было введено никакого значения. Я хочу, чтобы сообщение об ошибке исчезло после того, как пользователь введет значение в текстовое поле, чтобы пользователь знал, что введенное значение является действительным. Прямо сейчас сообщение об ошибке проверки остается видимым после внесения изменений пользователем. Я использую jquery-проверку.

Ответы [ 2 ]

1 голос
/ 02 марта 2012
$('input[type="text"]').on('keyup', function () {
    if (this.value === '') {
        //this input is blank
    }
});

Вы можете установить флаг для обработчика событий submit, чтобы проверить:

var error = false;
$('input[type="text"]').on('keyup', function () {
    if (this.value === '') {
        error = true;
        $(this).addClass('form-error');
    } else {
        error = false;
        $(this).removeClass('form-error');
    }
});
$('form').on('submit', function () {

    //trigger a `keyup` event on all the inputs in this form, to force validation if the input has not been changed
    $(this).find('input').trigger('keyup');
    console.log(!error);
    return !error;//will return true if there is not error, and false if there is an error
});​

Обратите внимание, что я использовал событие keyup, поскольку value элемента изменится к этому моменту.

Вот демоверсия: http://jsfiddle.net/jasper/NawBk/

Обратите внимание, что .on() является новым с jQuery 1.7 и в этом случае совпадает с .bind(): http://api.jquery.com/on

И да, я только что понял, что вы используете плагин jQuery Validate, я оставлю этот пост, потому что думаю, что он все еще может помочь людям.

0 голосов
/ 02 марта 2012
$('form :input').on('keypress',function(){
  $(this).closest('form').validate();
});

Принудительно подтвердить его заново, когда они что-то печатают. Хотя, как только пользователь вводит что-то, он должен автоматически распознавать, если он действителен или нет. Убедитесь, что ваш валидатор работает как положено.

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