@kellyhelly

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

Не получается прикрутить проверку заполненности полей. Выдаёт окно, что поля не заполнены, но заявку отправляет, перекидывает на страницу Спасибо.
При возврате назад все поля заполнены, не очищаются

Заранее спасибо!!

Код обработчика (phpmailer):
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require_once('Exception.php');
require_once('PHPMailer.php');
require_once('SMTP.php');
$mail = new PHPMailer();
$mail->CharSet = 'utf-8';

$name = $_POST["name"];
$phone = $_POST["phone"];
$email = $_POST["email"];
$city = $_POST["city"];  

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

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.yandex.ru';  																							// Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'xxx@yandex.ru'; // Ваш логин от почты с которой будут отправляться письма
$mail->Password = 'xxx'; // Ваш пароль от почты с которой будут отправляться письма
$mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to / этот порт может отличаться у других провайдеров

$mail->setFrom('xxx@yandex.ru'); // от кого будет уходить письмо?
$mail->addAddress('yyy@mail.ru');     // Кому будет уходить письмо 
//$mail->addAddress('ellen@example.com');               // Name is optional
//$mail->addReplyTo('info@example.com', 'Information');
//$mail->addCC('cc@example.com');
//$mail->addBCC('bcc@example.com');
//$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name


$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Новая заявка со страницы ' . $_POST['page'];
$mail->Body    = 'Имя: ' .$name . '<br>Телефон: ' .$phone. '<br>Эл. почта: ' .$email. '<br>Город: ' .$city. ; 
$mail->AltBody = '';

if(!$mail->send()) {
  echo 'Письмо не может быть отправлено. ';
  echo 'Ошибка: ';
} else {
  header('location: ../спасибо-за-заказ.htm');
  die();
}                            
?>


Код js:
$(document).ready(function() {

// Добавляем маску для поля с номера телефона
$('.phonemasked').each(function(){
  $(this).mask('+7 (999) 999-99-99');
});
$(".user_request").submit(function() {
  if ( !this.checkValidity() )
    alert('Пожалуйста, заполните обязательные поля.');
  else {
    $.ajax({
      type: "POST",
      url: "mail.php",
      data: $( this ).serialize()
});
      // очищаем поля
 
      $('#name').val('');
      $('#phone').val('');
      $('#mail').val('');
      $('#city').val('');
    });
  });
  });
  • Вопрос задан
  • 218 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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