<form method="post">
<input type="text" placeholder="Your name" autofocus required pattern="[a-z]{1,15}"/>
<input type="text" placeholder="Phone-number" required pattern="[0-9]{6,15}"/>
<input type="email" placeholder="Email" required/>
<input class="button" type="submit" rel="reg_form" value="request call"/>
</form>
<div class="popup reg_form">
<span class="home"></span>
<p class="popup_p">Request sent!</p>
<p>We will call you as soon as we can.</p>
<a class="close" href="#">Close</a>
<button class="close">Close</button>
</div>
$(function () {
$('input.button').click(function () {
$('div.'+$(this).attr("rel")).fadeIn(500);
$("body").append("<div id='overlay'></div>");
$('#overlay').show().css({'filter' : 'alpha(opacity=80)'});
return false;
});
$('a.close').click(function () {
$(this).parent().fadeOut(100);
$('#overlay').remove('#overlay');
return false;
});
$('button.close').click(function () {
$(this).parent().fadeOut(100);
$('#overlay').remove('#overlay');
return false;
});
});
<form method="post" id="myform">
<input type="text" placeholder="Your name" autofocus required pattern="[a-z]{1,15}"/>
<input type="text" placeholder="Phone-number" required pattern="[0-9]{6,15}"/>
<input type="email" placeholder="Email" required/>
<input class="button" type="button" onclick="sendMyForm();" rel="reg_form" value="request call"/>
</form>
<script type="text/javascript" language="javascript">
function sendMyForm() {
var msg = $('#myform').serialize();
$.ajax({
type: 'POST',
url: 'res.php',
data: msg,
success: function(data) {
$('.popup').fadeIn(500);
$("body").append("<div id='overlay'></div>");
$('#overlay').show().css({'filter' : 'alpha(opacity=80)'});
},
error: function(xhr, str){
alert('Возникла ошибка: ' + xhr.responseCode);
}
});
}
</script>
$("form").submit(function(){
// валидируем форму;
// отправляем данные на сервер;
// показываем попап;
return false // предотвращаем отправку формы и перезагрузку страницы
})
Как вариант, можно показать попап при отправке, потом при ответе от сервера в том же попапе показать результат, типа данные успешно отправились или ошибка.