Есть более-менее стандартная форма, которая проверяется при помощи Ajax. Проблема в том, что она начинает работать только со второго раза, после перезагрузки страницы. Еще трудности добавляет то, что код - не мой и у меня плохо получается разобраться, в чем проблема.
Ссылка на саму форму: https://www.advantika.ru/test.php
JavaScript:
$('.form form').submit(function(e) {
if(!! window.FormData){
e.preventDefault();
$form = $(this);
$submitButton = $form.find('[name="web_form_submit"]');
$submitButton.addClass('proceed').prop('disabled', true);
var formData = new FormData(this);
formData.append('web_form_submit', $submitButton.val());
$.ajax( {
url: 'https://www.advantika.ru/_formHandler.php',
type: 'POST',
data: formData,
processData: false,
contentType: false,
cache: false,
success: function(response){
$response = $(response);
if($response.find('.form-form-note').length > 0){
if('order' == $form.attr('name')){
var checkedServices = [];
$form
.find('.form-services')
.find('[type=checkbox]')
.each(function(){
if(true === $(this).is( ':checked' )){
checkedServices.push($(this).attr('data-gtm-val'));
}
});
var gtmEventLabel = document.URL + '|' + checkedServices.join('.') + '|';
}else{
var gtmEventLabel = document.URL;
}
dataLayer.push({
'event': 'adv.event',
'eventCategory': 'formSubmit',
'eventAction': $form.attr('name'),
'eventLabel': gtmEventLabel,
'eventValue': 0,
'eventNonInteraction': false
});
$form.find('.form-element input').val('');
$form.find('.form-element textarea').val('');
$form.find('input[type=checkbox]').prop('checked', false);
}
$form.find('.form-messages').stop().html($response.find('.form-messages').stop().html());
$submitButton.prop('disabled', false).removeClass('proceed');
}
});
return false;
}else{
$(this).submit();
}
});
xAqweRx ответил на вопрос в комментариях, я решил вынести его в ответы, чтобы было заметнее:
самый простой вариант - попробовать поменять $('.form form').submit(function(){})
на $(document).on('submit','.form form',function(){ ... } )
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть таблица динамическая по нажатию на кнопку добавляются поляЕсть первое поле оно сделано autocomplete, а в стольные поля информация подтягивается...
Подскажите пожалуйста как грамотно формировать массивы и сортировать их по разным параметрамЕсть отзывы которые я должен сортировать по: