Есть некая форма на сайте, данные из которой отправляются с помощью AJAX.
Код формы:
<form id="uni-form-1" class="uni-form" action="unisender.php" method="post" target="_blank">
<div class="uni-form__title">Заполните форму,<br> чтобы начать консультацию</div>
<input type="text" id="uni-form__name" name="name" class="form-control" placeholder="Ваше имя" onkeyup="setCapitalLetter(this.value, this)" required="">
<input type="email" id="uni-form__email" class="form-control" name="email" placeholder="Ваш email" required="">
<button id="uni-form__send" name="send" class="btn btn-1 uni-form__send"><span>Начать сеанс!</span></button>
<div class="success-message" style="display: none;" ></div>
<div class="confidentiality uni-form__text"><span>Я гарантирую Вашу конфиденциальность. Эти данные нужны только для отправки Вам второй сесси Робота-психолога</span></div>
</form>
JS:
$(function(Subscribe) {
$('.uni-form').submit(function(e) {
var $form = $(this);
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serialize()
}).success(function(){
console.log('success');
}).fail(function() {
console.log('fail');
});
//отмена действия по умолчанию для кнопки submit
e.preventDefault();
});
});
Везде работает кроме, айфона. Опытным путем выяснил, что проблема в методе .serialize(). Проблема решается, если вместо data: $form.serialize() отправлять данные массивом data: {email: email, name: name}, предварительно получив содержимое полей, и, записав их в переменные.
Но хотелость бы понять, почему метод .serialize() не срабатывает.