Fragment kodu w języku JavaScript realizujący dodawanie dwóch liczb ma następującą postać:
Podaj pierwszą liczbę: <input type="text" name="liczba1"> Podaj drugą liczbę: <input type="text" name="liczba2"> … <script> function dodaj() { // ta funkcja realizuje dodawanie i podaje jego wynik } </script>Aby dodawanie wykonane było po kliknięciu przycisku o nazwie „dodaj”, należy w wykropkowane miejsce wstawić
<button onclick="return oblicz()">dodaj</button>
<button onselect="return dodaj()">oblicz</button>
<button onclick="return dodaj()">dodaj</button>
<button onselect="return dodaj()">dodaj</button>
Pytanie z egzaminu CKE, wrzesień 2015 (arkusz E.14-X-15.08).
Po kliknięciu przycisku przeglądarka wywołuje zdarzenie onclick, więc to w tym atrybucie trzeba podać wywołanie funkcji: onclick="return dodaj()". Napis między znacznikami, dodaj, to podpis widoczny na przycisku - zgodnie z poleceniem przycisk ma się nazywać „dodaj”. Nazwa wywoływanej funkcji musi być dokładnie taka sama jak w definicji w skrypcie, łącznie z wielkością liter, bo JavaScript je rozróżnia. Słowo return przekazuje wynik funkcji do obsługi zdarzenia; gdyby funkcja zwróciła false, przeglądarka zablokowałaby domyślne działanie przycisku. W nowszym kodzie zamiast atrybutu stosuje się addEventListener('click', dodaj), ale onclick nadal działa i jest dopuszczany na egzaminie.
W każdej błędnej wersji coś się nie zgadza z poleceniem albo z kodem. Atrybut onselect obsługuje zdarzenie zaznaczenia tekstu w polu tekstowym - kliknięcie przycisku go nie wywoła, więc funkcja nie uruchomi się ani przy podpisie „oblicz”, ani przy podpisie „dodaj”. Wersja z onclick ma dobre zdarzenie i dobry podpis, ale wywołuje funkcję oblicz(), której w skrypcie nie ma; konsola przeglądarki pokaże błąd, że funkcja nie jest zdefiniowana. Do zadziałania potrzebne są trzy rzeczy naraz: zdarzenie onclick, nazwa funkcji zgodna z definicją, czyli dodaj(), oraz podpis „dodaj” między znacznikami przycisku. Spełnia je tylko zapis z onclick="return dodaj()". Zdarzenie onselect zostawia się dla pól tekstowych, gdy skrypt ma reagować na zaznaczenie fragmentu wpisanego tekstu, a do przycisków stosuje się onclick. Literówka w nazwie funkcji to jeden z najczęstszych błędów w skryptach egzaminacyjnych.