@Jers124

Как оптимизировать код обработки одной формы для нескольких форм?

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

$('.form').submit(function() {  // проверка на пустоту заполненных полей
		if (document.form.name.value == '' || document.form.phone.value == '' ) {
			valid = false;
			return valid;
		}
		$.ajax({
			type: "POST",
			url: "method.php",
			data: $(this).serialize()
		}).done(function() {
			$('.js-overlay-thank-you').fadeIn();
			$(this).find('input').val('');
			$('#form').trigger('reset');
		});
		return false;
	});


Формы похожи, пример выглядит так
<form class="form" name="form">
<input type="text" class="form-field" name="name" placeholder="Введите ваше имя">
<input type="number" class="form-field" name="phone" placeholder="Введите ваш телефон">
<input type="email" class="form-field" name="email" placeholder="Введите почту">
<input type="hidden" class="form-field" name="kurs" value="Продукт 1">

<button class="form-button"><span class="text-button">Отправить заявку</span></button>
</form>
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
попробуйте вместо
if (document.form.name.value == '' || document.form.phone.value == '' ) {

вот так:
if (this.name.value == '' || this.phone.value == '' ) {
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Hando
@Hando
Верстак
Проверяйте соседние с кнопкой отправки формы поля на валиднсть, а не все поля с данным классом. А сейчас вы проверяете все поля в документе и получаете логичный результат.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы