$('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, я оставлю этот пост, потому что думаю, что он все еще может помочь людям.