добрый день всем! Ни когда не сталкивался с тем что onsubmit не срабатывает и цель тоже соответственно.
Тут копать?
http://gh35.ru/sites/all/themes/gh/js/script.js
Куда вставить yaCounter46051725.reachGoal('call'); ?
Пока что получилось, так - цель срабатывает после открытия модального окна, а надо при отправке формы.
Спасибо всем кто ответит.
Комментарии
Форма и модуль самописные?
webform 7, через ajax формы отправляются
Тогда, возможно, так (добавить в JS формы или страницы с формой):
$("#myform").bind('ajax:complete', function() {
yaCounter46051725.reachGoal('call');
});
Или вариант перед самым сабмитом (после клика на кнопку):
e.preventDefault();
yaCounter46051725.reachGoal('call');
$(this).closest("#myform").submit();
});
jQuery(".form-submit").click(function(e) {
e.preventDefault();
yaCounter46051725.reachGoal('call');
jQuery(this).closest("#webform-client-form-77").submit();
});
</script>
тоже
Аналогично. Нужно пробовать из $(document).ready.
Я как-то предполагал, что вы уже понимаете механику событий jQuery.
jQuery("#webform-client-form-77").bind('ajax:complete', function() {
yaCounter46051725.reachGoal('call');
});
</script>
не срабатывает.
Это и не сработает, реакция на document.ready должна быть и DOM должен быть уже инициализирован перед bind.
Т.е. как минимум:
$(document).ready(function(){
$("#webform-client-form-77").bind('ajax:complete', function() {
yaCounter46051725.reachGoal('call');
});
});
})(jQuery);
В файл вставлял и просто на страницу , не хочет работать.
Может как то влияет action="/ajax-load/77?" ?
action ни при чём.
Смотрите консоль браузера, а также console.log() в помощь.
Боюсь, больше пока ничем не смогу помочь. Вашу ситуацию копать нужно более предметно.
bind('ajax:success', не то?
'ajax:complete' отрабатывает в любом случае (хоть ошибка, хоть успех), а 'ajax:success' - только в случае успеха (т.е. отсутствия ошибок AJAX).
копать не особо хочу.... Вижу решение - редирект после отправки формы на страницу благодарности. Как реализовать?
Да в настройках же вебформ можно указать кастомную страницу по сабмиту. К этой странице можно прикрутить кастомный же шаблон (копию page.tpl.php) с вызовом yaCounter46051725.reachGoal('call');
Вообще, тут вчера был апологет webform, может появится и что-то подскажет.
Вставьте перед yaCounter46051725.reachGoal('call'); вывод в консоль любой тестовой строки, ну например
console.log('submitted');
yaCounter46051725.reachGoal('call')
...
И посмотрите, что в консоли после сабмита, есть ли строка "submitted".
Если нет - значит механика вообще не работает в вашем случае.
Есть строка
console.log('submitted');
VM5971:1 submitted
Значит, механизм по AJAX-сабмиту работает и вызов yaCounter46051725.reachGoal('call'); реально происходит.
Почему не отрабатывает - это уже нужно копать yaCounter46051725.reachGoal('call'); и метрику.
$(document).ajaxComplete(function(){
$("#webform-client-form-77").bind('ajax:success', function() {
window.location = "/thanks";
});
});
})(jQuery);
решил просто отправлять посетителя на страницу благодарности и фиксировать цель по url.
Что не верно делаю? не переадресовывает
Зачем теперь через JS? Я же выше написал, что в вебформах можно поставить редирект на произвольную страницу после отправки формы. Стандартным образом, через админку Друпала.
PS. Вообще - что-то намудрили.
Вы ставите один обработчик .ajaxComplete(), а внутри него пытаетесь биндить другой обработчик .bind('ajax:success').
Масло масляное и работать не будет или будет с ошибками.
не внимательно скопировал.
$(document).ready(function(){
$("#webform-client-form-77").bind('ajax:complete', function() {
window.location = "/thanks";
});
});
})(jQuery);
window.location.href = "/thanks";
или (эмуляция редиректа):
window.location.replace("http://gh35.ru/thanks");
PS. Всё равно это как бы не кошерно, поскольку есть штатный редирект средствами webform.
Заказчик не дал доступов к админке, а только как контент менеджера. Теперь получил доступы и настроил штатным редиректом. Спасибо за помощь!