04
Май
2020

Форма заявки уходит пустая

Подскажите, пжлст! Есть форма заказа на сайте.

<form id="promo-form" action="#">
              <div class="form-group">
                <input name="name" placeholder="Ваше имя" type="text" class="form-control">
              </div>
              <div class="form-group">
                <input name="phone" placeholder="Ваш телефон" type="tel" class="form-control">
              </div>
              <button class="btn btn-block btn-info button_submit" id="btn_promo">Заказать сейчас</button> 
            </form>

Скриптом сначала срабатывает валидация (поля подсвечиваются ошибкой, если их не заполнить). Но через 2-3 секунды (!) форма уходит пустая. На почту приходит заявка (пустая естесна, ее же не успели заполнить), с этим все в порядке. Но почему уходит, ведь стоит валидация на пустые поля.

Скрипт валидации и отправки

//валидация форм
    function validateForms(form){
        $(form).validate({
            rules: {
            name: "required",
            phone: "required",      
            },
            messages: {
                name: "Пожалуйста, введите свое имя",
                phone: "Пожалуйста, введите свой номер телефона",
            }
        });
    };
    validateForms('#promo-form');
    validateForms('#order-form');  

//Отправка данных из формы
    $('form').submit(function(e) {
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: "mailer/smart.php",
            data: $(this).serialize()
        }).done(function() {
            $(this).find("input").val("");
            $('#order-form').fadeOut();
            $('.overlay, #thanks').fadeIn('slow');
            $('form').trigger('reset');
        });
        return false;
    });

Что тут не так? В чем моя ошибка?

Пысы. Запускала через OpenServer и MAMP - результат одинаковый. Просто вычитывала, что иногда в этом может быть проблема

ПыПыСы. Код отправки формы на почту

<?php 

$name = $_POST['name'];
$phone = $_POST['phone'];

require_once('phpmailer/PHPMailerAutoload.php');
$mail = new PHPMailer;
$mail->CharSet = 'utf-8';

// $mail->SMTPDebug = 3;                               // Enable verbose debug output

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.mail.ru';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = '[email protected]';                 // Наш логин 
$mail->Password = 'xxx';                           // Наш пароль от ящика
$mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465;                                    // TCP port to connect to

$mail->setFrom('ххх@mail.ru', 'сайт');   // От кого письмо (повторить логин ящика)
$mail->addAddress('мояПочта@mail.ru');     // Add a recipient
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Заявка с сайта';
$mail->Body    = '
        Пользователь оставил данные <br> 
    Имя: ' . $name . ' <br>
    Номер телефона: ' . $phone . '';

if(!$mail->send()) {
    return false;
} else {
    return true;
} 

?>

Источник: https://ru.stackoverflow.com/questions/1119955/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0-%D0%B7%D0%B0%D1%8F%D0%B2%D0%BA%D0%B8-%D1%83%D1%85%D0%BE%D0%B4%D0%B8%D1%82-%D0%BF%D1%83%D1%81%D1%82%D0%B0%D1%8F

Тебе может это понравится...

Добавить комментарий