Formularz przesłany przy użyciu submit () z łącza nie może zostać przechwycony przez program obsługi onsubmit
Zaskoczony, napotykam ten dziwny problem podczas przesyłania formularza z JS.
Kwestia:Rozważmy prosty formularz złożony na dwa sposoby z asubmit
przycisk i ananchor link
<form method="POST" action="page.html" name="foobar" id="test">
<input type="text" />
<input type="submit" />
</form>
<a href="#" onclick="document.getElementById('test').submit();">click me</a>
Funkcja przechwytująca zdarzenie przesyłania
document.getElementById('test').onsubmit = function() {
// Same result with
// * document.foobar.onsubmit
// * document.forms['foobar'].onsubmit
alert('foobar');
return false;
}
Teraz, gdy formularz zostanie przesłany z kliknięciemsubmit
przycisk Otrzymuję alert, alenie po kliknięciu linku. Dlaczego tak się dzieje?