0
0

Добрый день! Форма отправки с сайта работает частично :( Валидация срабатывает. При нажатии ключевой кнопки "купить/заказать" я не успеваю заполнить поля, несмотря на валидацию, выскакивает модальное окно благодарности. На почту все же приходит письмо-заявка, но пустое конечно же... Выполняю через OpenServer. 


Светлана Столярова
4 years ago






Ребята, ответьте на вопрос, прошу. Я уже три недели не могу ничего сделать с этим. Уроки дальше не могу делать, пока не исправлю этот баг...

Светлана Столярова
4 years ago

Через MAMP результат тот же... 

Светлана Столярова
4 years ago

У меня была таже проблема
И помогло мне вот это

/* mailer */

   $('form').submit(function(e) {
      e.preventDefault();
      let $form = $(this);
      if(! $form.valid()) return false;
      $.ajax({
           type: "POST",
           url: "mailer/smart.php",
           data: $(this).serialize()
      }).done(function() {
          $(this).find("input").val("");
          $('#consultation, #order').fadeOut();
          $('.overlay, #thanks').fadeIn('slow');
          $('form').trigger('reset');
      });
      return false;
   });

------------------------------------

      let $form = $(this);
      if(! $form.valid()) return false;

То есть  "Если форма не заполненна как положенно, то ничего не произайдет"

https://ibb.co/wpY8SQ4

student_h2VfEyrz
3 years ago

Пишу наверное тут для себя и для тех, кто ищет ответ на такой же вопрос :)

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

Светлана Столярова
4 years ago

Ребята, у кого похожая проблема, мне помогла замена "$(form).submit" на "submitHandler", т.е.скрипт стал таким: 

$('#promo-form').validate({
        rules: {
          name: "required",
          phone: "required"
        },
        messages: {
          name: "Пожалуйста, введите свое имя",
          phone: "Пожалуйста, введите свой номер телефона",
        },
        submitHandler: function(form) {
          $.post({
            url: "mailer/smart.php",
            data: $(form).serialize(),
          }).done(function() {
            $(this).find("input").val("");
             $('#order-form').fadeOut();
            $('.overlay, #thanks').fadeIn('slow');
            $('form').trigger('reset');
        });
        return false;
        }
    });

HTML и smart остаются такими же как и в уроке

Светлана Столярова
4 years ago

5 ответов