====== 3. Cvičení - Řešení ====== Řešení - postupně zveřejňováno (až po naplánovaném termínu) Řešení je na [[http://jsfiddle.net/zVckH/|této stránce]]. ==== Poznámky ==== - U ''addEventListener'' je nutné specifikovat třetí parametr (capture), v našem případě jako ''false''. Capture fáze se beztak nepoužívá: jednak ji nepodporuje IE, druhak ani není potřeba. - Vykonání vychozí akce (udeslání formuláře) lze zamezit zavoláním ''event.preventDefault()''. - Skript navěšující události je nutno vykonat až poté, co prohlížeč zparsuje HTML obsahující relevantní prvky. - Navěšená funkce dostává jediný parametr, objekt ''event''. Jeho vlastnost ''target'' je ten prvek, na kterém událost vznikla. - Události "focus" a "blur" nebublají, takže je musíme chytat na všech vstupních prvcích individuálně. - Metoda ''String.prototype.match'' provádí test proti regulárnímu výrazu. ==== AJAX ==== Řešení je na [[http://jsfiddle.net/CaUbB/|této stránce]]. - Požadavek posílám zatím prostě na "/", upravte dle potřeby (musí jít do domény stránky) - V callbacku "onreadystatechange" kontrolujeme readyState 4, tj. "požadavek dokončen" - V callbacku "onreadystatechange" je "this" rovno instanci XMLHttpRequestu - V odpovědi data rozsekám na slova a porovnávám, v praxi by to měl dělat backend - Třetí parametr v metodě "open" je asynchronnost