Задать вопрос
@Alex_8x

Почему не работает метод .serialize() на айфоне?

Есть некая форма на сайте, данные из которой отправляются с помощью 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() не срабатывает.
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы