Obsługa zdarzeń " zdarzenia - wszystko co zachodzi w związku z obiektami JavaScript (np. window) i elementami XHTML. Zdarzenia generuje np. najechanie myszą i kliknięcie na element, wybranie elementu formularza, koniec ładowania strony, JavaScript - wykład 4 itp. " kiedy zachodzi jakieś zdarzenie (ang. event) przeglądarka mo\e wywołać odpowiednią funkcję, która je obsłu\y (ang. event handler) Zdarzenia i formularze " XHTML posiada atrybuty: onclick, onmouseover, onload, słu\ące do prostej obsługi zdarzeń i za pomocą JavaScript pozwalają modyfikować obsługę zdarzeń w locie Beata Pańczyk " Zdarzenie mo\e obsłu\yć ka\da funkcja JavaScript " Funkcje przypisuje się do obiektów lub elementów XHTML (przez DOM) za pomocą addEventListener() 1 element.addEventListener(funkcja, zdarzenie, kolejność) 2 Zdarzenia Mysz " click - element został kliknięty myszą. Który przycisk został kliknięty mo\na sprawdzić w " Mysz obiekcie event; zachodzi równie\ przy aktywacji " Klawiatura elementu z klawiatury. " dblclick - podwójne kliknięcie na element " Logiczne " mousedown i mouseup - bardziej szczegółowa " Obiekt event - funkcja obsługująca reakcja na kliknięcie - gdy przycisk został zdarzenie jako pierwszy argument dostanie wciśnięty i puszczony obiekt, który zawiera szczegółowe " mouseover i mouseout - przydatne do pokazywania dynamicznych menu i dymków , informacje o zdarzeniu i pozwala działają tylko, gdy u\ytkownik u\ywa myszy kontrolować dalszy jego los (niezale\ne od urządzenia są focus i blur) 3 4 Logiczne Klawiatura " focus i blur - to stan, gdy np. pole tekstowe czeka " keypress - wciśnięcie klawisza na wpisanie tekstu lub odnośnik został zaznaczony z klawiatury. Te zdarzenia zachodzą, gdy element (analogiczne do click); obiekt event będzie zyskuje lub traci focus zawierał kod wciśniętego klawisza " load i unload - zachodzą na , gdy " keydown i keyup - moment wciśnięcia i dokument zostanie załadowany do końca (load) i puszczenia klawisza (podobnie jak gdy u\ytkownik zamknie lub przejdzie do innego dokumentu (unload); przeglądarki mogą blokować mousedown i mouseup) lub ograniczać działanie unload (broniąc się przed złośliwymi skryptami), dlatego nie mo\na na nim polegać. " submit - wysłanie formularza 5 6 1 Obsługa zdarzeń Funkcja obsługi zdarzenia " Obsługa zdarzeń w ciele dokumentu " funkcja obsługi zdarzenia - reakcja na zdarzenie " Mo\liwość obsługi w znacznikach: " funkcje obsługi zdarzeń wywoływane atrybutami onEvent="kod_JavaScript"
11 12 Zdarzenie unload blokowane przez przeglądarki 2 ZdarzenieonFocus ZdarzenieonBlur " Wywoływane w chwili przeniesienia kursora " Wywoływane w chwili opuszczania pola tekstowego (po zdarzeniu onFocus) w pole tekstowe " Występuje przed zdarzeniemonBlur " Znaczniki: , wszystkie elementy formularzy " Znaczniki: , wszystkie elementy formularzy " Przykład " Przykład onfocus="this.value='';" onblur="sprawdz(this.value);"> onfocus="this.value='';"> 13 14 ZdarzenieonChange ZdarzenieonSelect " Wywoływane w chwili podświetlenia tekstu " Wywoływane w chwili opuszczania pola wewnątrz pola tekstowego (po zdarzeniu tekstowego, którego zawartość została onFocus) zmieniona (po zdarzeniuonFocus) " Elementy formularzy: select, text, textarea, " Elementy formularzy: select, text, textarea, password password " Przykład " Przykład onselect="sprawdz(this.value);"> onchange="sprawdz(this.value);"> 15 16 Odnalezienie formularza Formularze " Kolekcja document.forms zawiera wszystkie formularze na " Za pomocą JavaScript mo\na w pełni kontrolować stronie formularze na stronach: " document.forms[0] - obiekt reprezentujący pierwszy element sprawdzać poprawność danych umieszczonych
action="mailto:beatap@pluton.pol.lublin.pl" onsubmit="return if (confirm("\n Czy napewno zamierzasz podać swój adres e-mail?")) submitForms()"> { alert("\nTwoje dane zostaną teraz wysłane.\n\n Dziękuję za
subskrybcję."); return true;}
else { alert("\n Czy chcesz anulować subskrybcję?");return false}
E-mail:
else return false;}
type="text">
function isFname() {
Nazwisko i imię:
if (document.forms[0].elements[2].value == "")
{ alert ("\n Nie wpisałeś swojego nazwiska. \n\n Proszę o uzupełnienie