Aby walidować pole formularza na bieżąco, w trakcie wpisywania znaków przez użytkownika, można wykorzystać zdarzenie:
Źle.
onClick reaguje na kliknięcie, a nie na wpisywanie znaków.Dobrze.
onKeyDown zachodzi przy każdym naciśnięciu klawisza - pozwala sprawdzać dane na bieżąco.Źle.
onLoad zachodzi po załadowaniu strony, nie podczas pisania.Źle.
onFocusOut zachodzi dopiero po opuszczeniu pola, a nie w trakcie pisania.Aby reagować na dane w trakcie ich wpisywania, używa się zdarzeń klawiatury, takich jak
onKeyDown (lub onInput), które zachodzą przy każdym naciśnięciu klawisza. Dzięki temu skrypt może sprawdzać poprawność pola na bieżąco i od razu informować użytkownika o błędzie. Dlatego do walidacji podczas pisania nadaje się onKeyDown.Pozostałe zdarzenia zachodzą w innych momentach.
onLoad uruchamia się raz, po wczytaniu strony lub elementu, więc nie nadąża za wpisywaniem. onClick reaguje na kliknięcie myszą, a nie na znaki wprowadzane z klawiatury. onFocusOut zachodzi dopiero, gdy użytkownik opuści pole - to walidacja po fakcie, a nie na bieżąco. Sprawdzanie danych podczas pisania umożliwia onKeyDown, dlatego to ono jest poprawne.