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".