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?

Fiddle Pokazuje problem

questionAnswers(2)

yourAnswerToTheQuestion