Którego zdarzenia należy użyć, aby funkcja JavaScript uruchamiała się za każdym razem, gdy użytkownik wpisze znak w polu edycji?
Źle.
onclick reaguje na kliknięcie myszą, nie na wpisanie znaku.Dobrze.
onkeydown zachodzi przy każdym naciśnięciu klawisza.Źle.
onmouseout zachodzi, gdy kursor opuszcza element.Źle.
onload zachodzi raz, po załadowaniu strony/elementu.Zdarzenia klawiatury reagują na wpisywanie tekstu.
onkeydown zachodzi w momencie naciśnięcia klawisza, więc funkcja uruchomi się przy każdym wprowadzonym znaku - przydatne np. do walidacji „na bieżąco” czy podpowiedzi w wyszukiwarce. Pokrewne są onkeyup (zwolnienie klawisza) i oninput (zmiana zawartości pola, polecane do śledzenia tekstu). Przykład: <input onkeydown="sprawdz()">. Dlatego do reakcji na wpisanie znaku służy onkeydown.Pozostałe zdarzenia nie reagują na wpisywanie z klawiatury.
onclick wywołuje się po kliknięciu myszą - nie zależy od tego, co użytkownik pisze. onmouseout zachodzi, gdy kursor opuszcza obszar elementu, czyli również dotyczy myszy, a nie klawiatury. onload uruchamia się tylko raz, po wczytaniu strony lub elementu, więc nie nadąży za kolejnymi znakami. Reakcję na każdy naciśnięty klawisz zapewnia onkeydown, dlatego to ono jest poprawne.