Table of Contents

3. Cvičení - Řešení

Řešení - postupně zveřejňováno (až po naplánovaném termínu)

Řešení je na této stránce.

Poznámky

  1. 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.
  2. Vykonání vychozí akce (udeslání formuláře) lze zamezit zavoláním event.preventDefault().
  3. Skript navěšující události je nutno vykonat až poté, co prohlížeč zparsuje HTML obsahující relevantní prvky.
  4. Navěšená funkce dostává jediný parametr, objekt event. Jeho vlastnost target je ten prvek, na kterém událost vznikla.
  5. Události “focus” a “blur” nebublají, takže je musíme chytat na všech vstupních prvcích individuálně.
  6. Metoda String.prototype.match provádí test proti regulárnímu výrazu.

AJAX

Řešení je na této stránce.

  1. Požadavek posílám zatím prostě na “/”, upravte dle potřeby (musí jít do domény stránky)
  2. V callbacku “onreadystatechange” kontrolujeme readyState 4, tj. “požadavek dokončen”
  3. V callbacku “onreadystatechange” je “this” rovno instanci XMLHttpRequestu
  4. V odpovědi data rozsekám na slova a porovnávám, v praxi by to měl dělat backend
  5. Třetí parametr v metodě “open” je asynchronnost