Некорректная работа аякс формы на ios

Varkolak
На сайте с 03.06.2005
Offline
174
2706

Всем привет.

В общем проблема, форма обратной связи работает нормально, кроме ios, не работает как нужно, отправляет пустые поля и результат не показывает, подскажите в чем может быть проблема?


<form class="fofm" action="">
<h5>Форма обратной связи</h5>
<input type="text" required placeholder="Имя" name="txtname">
<input type="email" placeholder="Email" name="txtemail">
<input type="tel" pattern="^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$" required placeholder="Телефон" name="txtphone">
<textarea name="txtmessage" placeholder="Описание" rows="10"></textarea>
<label><input type="checkbox">Я не робот</label>
<input type="hidden" name="valTrFal" class="valTrFal" value="valTrFal_disabled">
<input type="submit" class="button" value="Отправить" disabled="disabled" name="btnsend">
</form>


jQuery(document).ready(function($){

//в этой функции отслеживается изменение чекбокса "я не робот"
$(document).on('change', '.fofm input:checkbox', function() {
if($(this).is(':checked')){
$(".fofm input[type=submit]").removeAttr('disabled');
$('.fofm input[type=hidden].valTrFal').val('valTrFal_true');
}
else {
$(".fofm input[type=submit]").attr('disabled','disabled');
$('.fofm input[type=hidden].valTrFal').val('valTrFal_disabled');
}
});

//закрытие модального окна
$('.close_modal, .overlay').click(function (){
$('.popup, .popup2, .overlay').css({'opacity':'0', 'visibility':'hidden'});
$('.popup > .fofm textarea').val('');
//сброс всех полей формы обраной связи
$(':input','.fofm').not(':button, :submit, :reset, :hidden').val('').removeAttr('checked').removeAttr('selected');
$(".fofm input[type=submit]").attr('disabled','disabled');
});

//показ модального окна
$('.open_modal').click(function (e){
e.preventDefault();
$('.popup, .overlay').css({'opacity':'1', 'visibility':'visible'});
});

//аякс форма обратной связи
//проверяет какой ответ был получен
//и в зависимости от ответа
//выводит информацию о статусе
//отправки письма
$(".fofm").submit(function() {
var str = $(this).serialize();
$.ajax({
type: "POST",
url: "contact.php",
data: str,
success: function(msg) {
if(msg == 'ok') {
$('.popup2, .overlay').css('opacity','1');
$('.popup2, .overlay').css('visibility','visible');
$('.popup').css({'opacity':'0','visibility':'hidden'});
}
else {
$('.popup2 .window').html('<h5>Ошибка</h5><p>Сообщение не отправлено, убедитесь в правильности заполнение полей</p>');
$('.popup2, .overlay').css('opacity','1');
$('.popup2, .overlay').css('visibility','visible');
$('.popup').css({'opacity':'0','visibility':'hidden'});
}
}
});
return false;
});

});

https://yadi.sk/d/xjctjUNJgF58f - полностью страница.

html/css/js верстка и разработка сайтов на hostcms (хостцмс) - skype: varkolak1, тел: 89675012935, e-mail: anton.yurzanov@gmail.com
Varkolak
На сайте с 03.06.2005
Offline
174
#1

Разместил на codepen

http://codepen.io/anon/pen/xGbEZM

дани мапов
На сайте с 06.09.2012
Offline
204
#2

Возможно serialize некорректно работает. Попробуйте айдишники добавить, такие же как и аттрибут "name", например:

<input type="text" required placeholder="Имя" name="txtname" id="txtname">

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий