KWALIFIKACJA INF3 - STYCZEŃ 2021

PYTANIE NR 34.
Które zdarzenie pozwala wykonać kod w języku JavaScript w chwili wysyłania formularza HTML i zablokować lub pozwolić na jego wysłanie?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Zdarzenie formularza związane z jego wysłaniem to submit. Użycie obsługi onsubmit pozwala uruchomić kod w momencie próby wysłania i zdecydować, czy wysyłkę zatrzymać (np. przez anulowanie akcji domyślnej) czy dopuścić po poprawnej walidacji pól.

Pełne wyjaśnienie:

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.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Zdarzenie submit pojawia się, gdy formularz ma zostać wysłany do serwera. To najlepszy moment na sprawdzenie poprawności danych i ewentualne zablokowanie wysyłki, jeśli walidacja się nie powiedzie.
Najczęściej robi się to w obsłudze zdarzenia submit formularza, anulując akcję domyślną (np. przez preventDefault() w nowoczesnym podejściu). Dzięki temu formularz nie zostanie wysłany, dopóki warunki nie będą spełnione.
click dotyczy tylko kliknięcia elementu, a formularz może zostać wysłany także bez kliknięcia (np. inną akcją w przeglądarce). Dodatkowo kliknięty przycisk nie musi być typu submit. Dlatego właściwsze jest przechwycenie submit.
Nie w pełni. change służy do reagowania na zmianę wartości konkretnego pola, więc pomaga w walidacji "na bieżąco". Jednak decyzję o wysłaniu całego formularza podejmuje się w momencie submit, dlatego onsubmit/submit jest kluczowe.
Typowo sprawdza się: czy pola wymagane są wypełnione, czy e-mail ma poprawny format, czy hasła są zgodne, czy zaznaczono zgody. Jeśli coś jest błędne, w submit zatrzymuje się wysyłkę i wyświetla komunikaty przy polach.
Zdarzenie pojawia się, gdy przeglądarka ma wykonać wysłanie formularza: zwykle po użyciu przycisku typu submit albo po akcji, która uruchamia wysyłkę. Dlatego obsługa submit jest centralnym miejscem do walidacji końcowej.
W praktyce często wybiera się podejście z JavaScript: wyszukuje się formularz w DOM i podpina nasłuchiwanie zdarzenia submit. To rozdziela strukturę HTML od logiki i ułatwia utrzymanie kodu w większych projektach.
W standardowych zdarzeniach DOM nie ma typowego eventu o nazwie onEnter. Klawisz Enter obsługuje się zwykle przez zdarzenia klawiatury (np. keydown/keyup) albo przez przechwycenie submit formularza, jeśli Enter inicjuje wysyłkę.
Częste błędy to: walidacja tylko na click przycisku (pomijanie innych sposobów submit), brak zatrzymania wysyłki przy błędzie, albo walidacja w onChange bez końcowej kontroli w submit. Warto też pamiętać o komunikatach dla użytkownika.
Utrwal różnice między submit, click i change oraz przećwicz scenariusze: walidacja wymaganych pól, blokowanie wysyłki i dopuszczanie po poprawkach. Najlepiej zrobić krótkie projekty z formularzami i testować w przeglądarce.
info

To pytanie poprawnie rozwiązuje 57% zdających egzamin. średnie

W praktyce zawodowej kluczowe jest to, że zdarzenie formularza związane z jego wysłaniem to submit.

Źródła:

  • MDN Web Docs: "submit event" (DOM) – opis zdarzenia i jego użycia przy formularzach, https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit_event (dostęp: 2026-02-27)
  • MDN Web Docs: "GlobalEventHandlers.onsubmit" – atrybut/handler onsubmit, https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onsubmit (dostęp: 2026-02-27)
  • WHATWG HTML Living Standard: sekcje dotyczące formularzy i przesyłania formularza (form submission), https://html.spec.whatwg.org/ (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja MDN: zdarzenie submit i obsługa formularzy
  • Specyfikacja WHATWG HTML: formularze i wysyłanie
  • Ćwiczenia praktyczne: walidacja formularzy oraz preventDefault()

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego