@olyabolya

Форма выдаёт ошибку, что поля не заполнены, но на почту отправляет?

Добрый вечер! Нужна помощь с javascript.
По этому коду если не заполнять поля выдаётся ошибка, но форма на почту всё равно отправляется. Как исправить?

$(document).ready(function() {

// Добавляем маску для поля с номера телефона
$('#phone').mask('+7 (999) 999-99-99');

var form = document.getElementById('form'); // form has to have ID: <form id="formID">
form.noValidate = true;
form.addEventListener('submit', function(event) { // listen for form submitting
if (!event.target.checkValidity()) {
event.preventDefault(); // dismiss the default functionality
alert('Пожалуйста, заполните обязательные поля.'); // error message
}
}, false);

$("form").submit(function() {
$.ajax({
type: "POST",
url: "/form/mail.php",
data: $(this).serialize()
}).done(function() {
alert("Заявка принята! В ближайшее время наш менеджер с Вами свяжется.");
});
return false;
});
});
  • Вопрос задан
  • 237 просмотров
Решения вопроса 1
@choupa
Архитектор (обычный, который строит)
У вас какой-то зоопарк, а не код. Видимо понадёргали из разных мест. Нижняя обработка отправки формы (которая на jQ написана), перекрывает верхнюю, поэтому письмо отправляется всегда.

Объедините всё в одну функцию:
$( "form" ).submit( function() {
  if ( !this.checkValidity() ) 
    alert( "Пожалуйста, заполните обязательные поля." );
  else  {
    $.ajax( {
      type: "POST",
      url: "/form/mail.php",
      data: $( this ).serialize()
    } ).done( function() {
      alert( "Заявка принята! В ближайшее время наш менеджер с Вами свяжется." );
    } );
} );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы