Как открыть popup после отправки формы?

Есть такая форма

<form action="check.php" method="post" class="form" >
   
   <div class="popup-form"> 
    <input type="text" name="name" placeholder="Ваше имя" required pattern="[а-яА-Я]+">
    </div>

    
     <div class="popup-form"> 
<input type="text"  name="tf" placeholder="Ваш телефон" required>
</div>


<div class="popup-form"> 
 <input type="text"  name="email" placeholder="Ваш email" required>
</div>
 

Так реализован popup

 $('.open-popupp').click(function(e) {
e.preventDefault();
$('.popupp-bg').fadeIn(800);
$("html").addClass("no-scroll");
});



  $('.close-popupp').click(function() {
$('.popupp-bg').fadeOut(800);
    $("html").removeClass("no-scroll");
 });

Popup открывается сразу после нажатия на кнопку, минуя отправку формы и валидацию. Нужно, чтобы popup не открывался, если поля не заполнены корректно. Если же поля заполнены корректно, то отправляется форма и после открывается popup. Помогите пожалуйста сделать это.


Ответы (1 шт):

Автор решения: Vladimir Ignatenko

Форма у вас как отправляется? По коду видно что без AJAX. В таком случае у вас, в принципе не получится силами javascript отловить тот факт что форма отправилась.

В вашем случае вероятней всего проще всего будет добавить код этого всплывающего окна на страницу, где идет работа с данными формы. Т.е. в check.php и уже там, в случае если данные корректны, то просто показывать всплывающее окно. Без привязки к каким-либо конпкам и событиям.

Если же форма у вас отправляется через AJAX, то показ всплывающего окна надо вызывать из оработчика событий по AJAX. После того как скрипт отправит данные на сервер и получит ответ о том что ошибок нет.

→ Ссылка