В моем приложении Laravel я использую пиксель Facebook для отслеживания. Одним из таких показателей отслеживания является отправка формы.
$("#emailConfirmation").on("submit", function(e) {
var eventId = {{ $event->id }};
if (eventId === 87 || eventId === 88 || eventId === 89) {
e.preventDefault();
fbq('track', 'Lead', {
content_name: 'Email confirmation',
content_category: 'Form submission'
});
$("#emailConfirmation").submit();
}
});
Это должно предотвратить отправку формы, если $event
Переданный в представление имеет определенный идентификатор, затем отправьте запрос в аналитику Facebook Pixel, а затем отправьте форму.
Вместо этого я получаю следующую ошибку:
uncaught RangeError: превышен максимальный размер стека вызовов
Проблема в том, что вы создаете бесконечную рекурсию, поднимая submit
событие в submit
обработчик события.
Чтобы исправить это, поднять событие отправки родного form
Элемент вместо объекта jQuery:
$("#emailConfirmation").on("submit", function(e) {
var eventId = {{ $event -> id}};
if (eventId === 87 || eventId === 88 || eventId === 89) {
e.preventDefault();
fbq('track', 'Lead', {
content_name: 'Email confirmation',
content_category: 'Form submission'
});
this.submit(); // change here
}
});
Других решений пока нет …