2013-05-06 4 views
1

Я использую liferay с piwik и хотел бы захватить события ошибки проверки на стороне клиента в пользовательскую переменную в piwik. Напр. на странице регистрации пользователя по умолчанию установлено несколько полей и настроены калибраторы. Я хочу зафиксировать все ошибки проверки, обнаруженные регистрирующим пользователем в piwik для анализа и возможного улучшения пользовательского опыта.Каким образом может быть зафиксирована ошибка проверки ливня сплава ui для веб-аналитики?

Я бы предпочел сделать это централизованно, чтобы все проверки формы оказались в ловушке для пивика. Не удалось понять, как организована структура валидатора сплава ui. Кажется, здесь слишком много магии.

Я просто нажал кнопку отправки на пустой регистрационной форме и обнаружил, что класс aui-form-validator-error-container добавляется на размытие и отправляется в поля ошибки тега. Мне не удалось определить код, который делает все это волшебство.

Будет ли у кого-нибудь несколько указателей на меня, как это сделать?

+0

Я понимаю, что вы знаете, как использовать пользовательскую переменную в PIWIK? –

+0

Да, да. Я ищу способ реализовать это централизованно, а не в каждом конкретном случае. – arajashe

+0

Вы можете создать другую страницу. Эта страница будет генерировать javascript для сохранения пользовательской переменной. Просто передайте имя настраиваемой переменной и ее значение на эту страницу и добавьте генерировать сценарий на текущую страницу. Вызов этой страницы возможен с любой страницы. Таким образом, он может обрабатываться централизованно. Помните: Piwik позволяет использовать 5 настраиваемых переменных на страницу. –

ответ

0

Я не уверен, если это поможет, но вы можете обратиться к вашему

{liferay_tomcat_home} /webapps/root/html/js/aui/aui-form-validator/aui-form-validator.js

Он содержит фактический javascript, используемый во время рендеринга.

0

Это то, что вы должны нуждаться, чтобы получить то, что вы хотите:

  1. Слушайте form:registered событие, чтобы получить экземпляры формы.
  2. Слушайте событие submitError на formValidator каждой формы.
  3. Используйте event.validator.errors чтобы проверить, что у fields были ошибки.

Что-то, как это должно работать:

Liferay.on('form:registered', function(event) { 
    event.form.formValidator.on('submitError', function(event) { 
     console.log(event.validator.errors); 
    }); 
}); 

Кроме того, вы можете также слушать errorField и validField на formValidator отдельных уведомлений на местах.