W HTML formularz jest wysyłany w chwili, gdy następuje jego submit (np. kliknięcie przycisku typu submit albo zatwierdzenie w polu, jeśli przeglądarka to wywoła). Zdarzenie, które jest bezpośrednio powiązane z tą czynnością, to submit, a w starszym (atrybutowym) zapisie spotyka się obsługę jako onsubmit.
To właśnie na etapie submit najczęściej wykonuje się walidację: sprawdza się, czy pola są wypełnione, czy mają poprawny format, czy użytkownik zaakceptował regulamin itp. Jeśli dane są niepoprawne, logika obsługi submit może zablokować wysłanie formularza poprzez anulowanie domyślnej akcji (np. mechanizmem typu preventDefault w nowoczesnym JS albo zwróceniem wartości blokującej w klasycznych obsługach atrybutowych). Jeśli wszystko jest poprawne, pozwala się na wysyłkę.
Odpowiedź onEnter jest błędna, bo nie jest standardowym zdarzeniem formularza w HTML/DOM; "Enter" może co najwyżej wywoływać pewne zachowania w polach, ale nie istnieje typowe zdarzenie o takiej nazwie do kontroli wysyłki formularza.
Odpowiedź onClick dotyczy kliknięcia elementu (np. przycisku), ale kliknięcie samo w sobie nie zawsze oznacza wysłanie formularza (przycisk może być typu button, linkiem, elementem UI), a ponadto formularz może zostać wysłany również inną drogą. Dlatego click nie jest właściwym punktem zaczepienia do ogólnej kontroli wysyłania.
Odpowiedź onChange dotyczy zmiany wartości kontrolki (np. input, select) i występuje w trakcie wypełniania formularza, a nie w momencie jego wysyłki. Można ją użyć do walidacji "na bieżąco", ale nie zastępuje mechanizmu kontroli submit całego formularza.
Na egzaminie warto pamiętać: submit = wysłanie formularza, click = kliknięcie elementu, change = zmiana wartości pola.