KWALIFIKACJA INF3 - CZERWIEC 2017

PYTANIE NR 32.
Funkcja JavaScript powinna być wywołana za każdym razem, gdy użytkownik wpisze dowolny znak do pola edycji. Którego zdarzenia należy użyć?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Zdarzenie "oninput" uruchamia się wtedy, gdy wartość pola edycji faktycznie ulegnie zmianie (np. po wpisaniu znaku lub wklejeniu). Dzięki temu po obsłudze zdarzenia można odczytać nową wartość. "onkeydown" reaguje na naciśnięcie klawisza i może wystąpić jeszcze przed zmianą treści pola.

Pełne wyjaśnienie:

Zdarzenie oninput służy do wykrywania faktycznej zmiany wartości elementów formularza, takich jak <input> i <textarea>. Jeżeli wymaganiem jest wywołanie funkcji "za każdym razem, gdy użytkownik wpisze dowolny znak do pola edycji", kluczowe jest, aby zdarzenie wystąpiło po aktualizacji wartości (czyli wtedy, gdy w polu znajduje się już nowa treść).

Odpowiedź "oninput" jest poprawna, ponieważ uruchamia się, gdy wartość pola została zmieniona niezależnie od źródła zmiany. Obejmuje to nie tylko wpisywanie z klawiatury, ale też m.in. wklejanie (Ctrl+V), przeciąganie tekstu czy inne metody wprowadzania danych. W praktyce umożliwia to poprawne działanie walidacji "na żywo", liczników znaków i podpowiedzi, bo odczyt pola (np. przez value) zwróci już stan aktualny.

Odpowiedź "onclick" jest nieprawidłowa, bo dotyczy kliknięcia myszą. Kliknięcie może jedynie ustawić fokus lub zaznaczyć pole, ale nie oznacza automatycznie wpisania znaku ani zmiany wartości.

Odpowiedź "onload" jest nieprawidłowa, ponieważ wiąże się z załadowaniem dokumentu lub zasobu (np. strony). Nie reaguje na edycję treści pola formularza w trakcie pracy użytkownika.

Odpowiedź "onmouseout" jest nieprawidłowa, bo uruchamia się, gdy kursor myszy opuści obszar elementu. Może wystąpić bez jakiejkolwiek zmiany tekstu i nie jest powiązana z wprowadzaniem znaków.

Częsta pułapka na egzaminie: wybór "onkeydown", bo kojarzy się z klawiaturą. To zdarzenie informuje o naciśnięciu klawisza, ale nie gwarantuje, że wartość pola już się zmieniła ani że w ogóle się zmieni (np. klawisze sterujące). Do reakcji na rzeczywistą zmianę treści właściwsze jest "oninput".

Dodatkowe pytania

Dodatkowe pytania (FAQ):
oninput to zdarzenie uruchamiane, gdy wartość pola formularza faktycznie się zmieni, np. w <input> lub <textarea>. Reaguje na wpisanie znaku, wklejenie tekstu czy inne metody edycji. Dzięki temu nadaje się do walidacji i liczników znaków.
onkeydown informuje o naciśnięciu klawisza, ale może wystąpić zanim znak pojawi się w polu. Dodatkowo uruchamia się także dla klawiszy, które nie zmieniają treści (Ctrl, Alt, strzałki). Nie obejmuje też sytuacji wklejania, jeśli pole zmienia się bez "pisania".
Do licznika znaków najlepsze jest oninput, bo uruchamia się po zmianie wartości. Po zdarzeniu można odczytać nową długość tekstu (np. liczba znaków). Zdarzenia klawiatury mogą dać wynik "o jeden znak wstecz" albo pominąć wklejenie tekstu.
Tak. oninput reaguje na zmianę wartości pola niezależnie od tego, czy tekst został wpisany z klawiatury, czy wklejony (Ctrl+V), przeciągnięty lub wprowadzony w inny sposób. To jedna z głównych przewag nad obsługą wyłącznie zdarzeń klawiatury.
onkeyup jest zdarzeniem klawiatury i informuje o zwolnieniu klawisza, zwykle już po wpisaniu znaku. oninput jest zdarzeniem zmiany wartości pola i działa także bez klawiatury (np. wklejanie). Do śledzenia realnej zmiany treści pola bezpieczniejszy jest oninput.
Zdarzenia klawiatury (np. onkeydown) są przydatne, gdy chcesz wykrywać konkretne klawisze lub skróty (Enter, Escape, strzałki, Ctrl+S) albo blokować pewne naciśnięcia. Gdy celem jest reakcja na zmianę treści pola, standardowo wybiera się oninput.
Walidacja może działać niepełnie: uruchomi się przed zmianą wartości, może pomijać wklejanie, a także reagować na klawisze niezwiązane z edycją. W efekcie użytkownik zobaczy spóźnione lub błędne komunikaty. Lepszym podejściem jest użycie oninput do zmian treści.
oninput jest używane głównie z elementami, których wartość może się zmieniać w trakcie interakcji, np. <input> i <textarea> (a także w wielu przypadkach <select>). W praktyce na egzaminie przyjmij zasadę: gdy interesuje Cię zmiana wartości pola, rozważ oninput.
Nie. onclick dotyczy kliknięcia i nie oznacza, że wartość pola uległa zmianie. Kliknięcie może jedynie ustawić kursor w polu. Do reakcji na wpisywanie, wklejanie i ogólną zmianę treści stosuje się oninput (lub inne zdarzenia zmian wartości).
Szukaj sformułowań typu: "po zmianie wartości pola", "za każdym razem gdy użytkownik wpisze znak", "walidacja w czasie rzeczywistym", "licznik znaków". To wskazuje na potrzebę reakcji po aktualizacji treści. Wtedy najczęściej poprawną odpowiedzią jest oninput.
info

To pytanie poprawnie rozwiązuje 47% zdających egzamin. trudne

W praktyce zawodowej kluczowe jest to, że zdarzenie "oninput" uruchamia się wtedy, gdy wartość pola edycji faktycznie ulegnie zmianie (np. po wpisaniu znaku lub wklejeniu).

Źródła:

  • MDN Web Docs: InputEvent / event "input" (opis: fires when the value of an input/textarea/select has been changed), https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event - accessed 2026-03-01
  • MDN Web Docs: Documentacja zdarzenia "keydown" (opis: fired when a key is pressed), https://developer.mozilla.org/en-US/docs/Web/API/Element/keydown_event - accessed 2026-03-01
  • WHATWG HTML Living Standard: sekcje dotyczące zdarzeń formularzy i "input" (HTML specification), https://html.spec.whatwg.org/ - accessed 2026-03-01

Materiały:

  • Dokumentacja MDN: Input event
  • Dokumentacja MDN: KeyboardEvent (keydown)
  • Specyfikacja HTML Living Standard (sekcja o zdarzeniach input)

Aktualizacja pytania: 03.04.2026



Aktualizacja pytania: 03.04.2026
📡 Brak połączenia internetowego