Коллеги, прошу помощи:
есть форма заявки на сайте и js-обработчик этой формы, который ее валидирует и отправляет на мыл, если все ок. Нужно добавить в обработчик отслеживание целей яндекс.метрики.
Стандартные варианты для формы, предлагаемые яндексом типа
<form action="" method="get" onsubmit="yaCounterXXXXXX.reachGoal('ORDER'); return true;">
не подходят и/или не работают.
Хелп яндекса по сабжу: help.yandex.ru/metrika/objects/reachgoal.xml
Вот часть кода обработчика формы (файл scripts.js):
submitForm: function (e) {
e.preventDefault();
var form = $(this),
submitBtn = form.find('button[type="submit"]');
if( app.validateForm(form) === false ) return false;
/* var yaCounter12345678 = new Ya.Metrika({id: 12345678});
yaCounter12345678.reachGoal('CONTACT'); */
var str = form.serialize();
$.ajax({
url: '/sendform.php',
type: 'POST',
data: str
})
.done(function(msg) {
if(msg === "OK"){
var result = "<div class='bg-success'>Благодарим за вашу заявку, мы скоро свяжемся с вами!</div>";
form.html(result);
}else{
form.html(msg);
}
});
},
Собственно примерный вызов метрики в коде есть (закомментирован), но не работает, естественно. Насколько понимаю из-за [не]видимости объекта или неправильного использования объекта/метода Метрики, но опыта в js не хватает, чтобы исправить (
Головной хтмл, где подключается scripts.js с обработчиком, выглядит так:
<!DOCTYPE html>
...
<body>
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function (d, w, c) {
(w[c] = w[c] || []).push(function() {
try {
w.yaCounter12345678 = new Ya.Metrika({id:12345678,
...
<!-- /Yandex.Metrika counter -->
...
...
...
<script src="js/scripts.js"></script>
</body>
</html>
Прошу помочь правильно вызвать код Метрики в обработчике формы, чтобы отслеживались цели.