Mesuti
@Mesuti

Порядок функций при отправке формы?

Привет!
Сайт скопирован с тильды, поэтому код грязный и минифицированный, разобраться нереально.
На всех формах висят нужные обработчики (успех отправки и валидация), их убирать нельзя.

Нужно повесить свой дополнительный обработчик. Указываю так:
window.addEventListener('load', e => {
   document.querySelectorAll('form').forEach(form => {
	console.log(form); // все формы успешно найдены
        form.addEventListener('submit', e => {
            e.preventDefault();
            customFunc('success') 
        })
    });
})
function customFunc(e) {	
   console.log(e); 
}


Но этот обработчик не срабатывает на 1 конкретной форме.

Как задать приоритет - сначала выполнить customFunc(), затем все остальное?

Безуспешно пробовал указывать прямо в форме
<form onsubmit="customFunc('success');return false" ...
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
Stalker_RED
@Stalker_RED
Вероятно на этой форме уже висит какой-то обработчик, который срабатывает раньше, и "гасит" событие.
Вариантов я вижу два:

1. вешать form.addEventListener с параметром useCapture=true (может не сработать, если у "вражеского" обработчика тоже такая фича)
2. выполнить этот ваш код раньше "вражеского". Использовать DOMContentLoaded вместо load, подключить раньше (разместить его выше).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
27 нояб. 2024, в 13:07
10000 руб./за проект
27 нояб. 2024, в 12:53
70000 руб./за проект
27 нояб. 2024, в 12:50
25000 руб./за проект