Добрый день. Пытаюсь реализовать ajax отправку писем через FormIt, но что-то, где-то пропустил. При нажатии на submit нас перекидывает на страницу формы(index.php?id=2), хотя поидее мы должны оставаться на первой странице где открыта ajax форма…
Код вызова
<a href="[[~2]]" class="ajax-form call" >Заказать звонок</a>
$(window).ready(function() {
$('.ajax-form.call').on("click", function (e) {
e.preventDefault();
$.ajax({
type: "POST",
cache: false,
url: this.href,
data: $("#callback").serializeArray(),
success: function (data) {
$.fancybox(data, {
}); // fancybox
} // success
}); // ajax
}); // on
//type: 'ajax',
$(window).on('submit', 'form.popup-form', function(e){
var formData = $('form.popup-form').serialize();
console.log(formData);
$.ajax({
url: '[[~2]]',
data: formData,
type: 'post',
success: processServerResponse
})
processServerResponse('<div style="text-align: center"><img src="assets/templates/site/images/spinner.gif" alt="загрузка" /></div>');
e.preventDefault;
return false;
});
function processServerResponse(data) {
$('form.popup-form').html(data);
}
});
<div class="popup popup-form" id="order" style="display:block">
<p>Заказать звонок</p>
[[!FormIt?
&hooks=`spam,email`
&emailTpl=`emailTpl`
&redirectTo=`[[*id]]`
&emailSubject=`Заказан звонок`
&emailTo=`mail`
&validate=`name:required,phone:isNumber:required`
&errTpl=`error`
&successMessage=`<div class="text-succes">Спасибо! Ваше письмо отправлено.</div>`
&validationErrorMessage=`<div class="text-error">Внимание! Заполните все поля.</div>`
&emailFrom=`mail`
]]
<form action="[[~[[*id]]]]" method="post" class="popup-form" id="callback">
[[!+fi.error_message]]
[[!+fi.successMessage]]
[[!+fi.validation_error_message]]
<input type="text" class="[[!+fi.error.name]]" placeholder="Имя" name="name" value="[[!+fi.name]]">
<input type="text" class="[[!+fi.error.phone]]"placeholder="Телефон" name="phone" value="[[!+fi.phone]]">
<input type="submit" value="заказать звонок">
</form>
</div>