submit событие не срабатывает, если submit инициирован программно

У меня есть HTML-форма с кнопкой:

<form action="/" method="post" id="MyForm">
<input type="hidden" name="Field1" value="Value1" />
<input type="hidden" name="Field2" value="Value2" />
<input type="submit" name="name" value="submit" />
</form>

у меня есть обработчик событий для отправки, прикрепленный к окну:

window.onsubmit = function()
{
    alert("Submit happening!");
};

этот обработчик событий срабатывает правильно, если я нажимаю кнопку" Отправить". Однако события никогда не работают, когда submit запускается программно из javascript:

$("#MyForm")[0].submit();

как поймать обработчик событий отправки, когда он был инициирован Javascript, а не щелчком пользователя? Я попытался подписаться на событие формы с помощью Jquery или AddEventListener - не работа.

2 ответов


это потому, что вы не должны просто использовать


браузеры не запускают форму onsubmit обработчик при ручном вызове form.submit().

библиотека jQuery также напоминает используется для имитации этого (см. Это "wontfix" "ошибка").

Читайте также: