@sudden_man
bcvbcvbc

Как запретить отправку формы такого типа?

как сделать так, чтоб нельзя было отправить форму при ошибках в воде? заранее спасибо

Вот форма отправки
$("form").submit(function() {
        
		$.ajax({
			type: "POST",
			url: "mail.php",
			data: $(this).serialize()
		}).done(function() {
			alert("Спасибо за заявку!");
		});
        setTimeout(function() {
            $.fancybox.close();
            $("form").trigger("reset");
        }, 1000);
		return false;
	});


А вот HTML:
<form id="form1" method="post">
    <p class="inpdescr">Ваше имя</p>
    <input id="inpname" type="text" name="name" /><br>
    <p class="inpdescr">Ваш телефон</p>
    <input type="text" name="phone" /><br><br>
    
    <button class="btn_form">Заказать</button>
    
</form>


ааа, еще...вот валидация:
$("#form1").validate({
    
        rules:{
            
            name:{
                required: true,
                minlength: 3
            },
            
            phone:{
                required: true,
                number: true
            }
        },
        
        messages: {
            
            name:{
                required: "Представьтесь пожалуйста",
                minlength: "Введите корректное имя",
            },
            
            phone:{
                required: "На какой номер вам перезвонить?",
                number: "Введите корректный номер"
            }
        }
    
    });
  • Вопрос задан
  • 368 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Просто прочитайте документацию к плагину
$("form").submit(function() {
  var that = this;
//    $(this).validate() // возможно и валидацию понадобиться вызвать, смотря как у вас там все работает..
    if ( !$(this).valid() ) return false; // проверьте, правильно ли заполнена форма

    $.ajax({
      type: "POST",
      url: "mail.php",
      data: $(this).serialize()
    }).done(function() {
      alert("Спасибо за заявку!");
    });
        setTimeout(function() {
            $.fancybox.close();
            $(that).trigger("reset");
        }, 1000);
    return false;
  });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
IonDen
@IonDen
JavaScript developer. IonDen.com
$("form").submit(function(event) { // <- вставьте сюда event object
    // problem это какое-то не выполнившееся условие, например не заполненное поле в форме

    if (problem) {
        event.preventDefault(); // <- предотвращаем сабмит
    } else {
        // все нормально, делаем запрос
    }
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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