Shrnutí
V této lekci jste se naučili, že:
- Obsluha dostane jako argument objekt události:
function (event) { ... }.event.targetje prvek, ve kterém se událost stala, takže jedna funkce může obsluhovat víc prvků. - Atributy, které začínají
data-, nesou v prvcích vaše vlastní data:data-barva="teal"jeprvek.dataset.barva, vždy jako text. - Události probublávají nahoru přes prvky, ve kterých je cílový prvek, takže jedna obsluha na seznamu obslouží kliknutí na všechny jeho položky, i na ty přidané později.
event.target.closest("li")najde položku, na kterou se kliklo, nebo vrátínull. - Událost
inputpřijde po každé změně textu v textovém poli, takže stránka může reagovat už během psaní.changepřijde, když se změní výběr:valueprvkuselectnebocheckedzaškrtávacího políčka (true, nebofalse). - Text má metody
includes(),toLowerCase()atrim(), která odstraní mezery na začátku a na konci. keydownpřijde při každém stisku klávesy aevent.keyřekne, která klávesa to byla:"a","Enter","Escape", s velkými písmeny přesně takhle.formse odešle tlačítkem pro odeslání nebo Enterem a pak dostane událostsubmit. V obsluze zavolejteevent.preventDefault(), jinak prohlížeč stránku načte znovu a všechno napsané zmizí.- Než použijete, co uživatel napsal, zkontrolujte to: prázdné, moc krátké, není číslo (
Number.isNaN(), nikdy=== NaN). Každou chybu ukažte u jejího textového pole, vyprázdněte ji, když je pole v pořádku, a práci formuláře udělejte, jen když je v pořádku všechno.
V příští lekci, Miniprojekt: Registrační formulář, to všechno využijete v registračním formuláři, který se kontroluje sám: řekne, co je kde špatně, a když je všechno v pořádku, nového uživatele přivítá.
Nejdřív si ale vše procvičte na lepicím lístku, na který můžete psát a měnit mu barvu. script.js je zase prázdný a celý program napíšete sami.
Jak psát:
Pokyny
Zařiďte, aby lístek už během psaní ukazoval, co je napsané v textovém poli #text: po každé změně textu v poli dejte ten text do prvku #listek.
Zařiďte, aby kliknutí na tlačítko v #barvy změnilo barvu pozadí prvku #listek (jeho style.backgroundColor) na barvu z atributu data-barva tlačítka. Tlačítka nemají id, takže dejte prvku #barvy jednu obsluhu kliknutí a tlačítko, na které se kliklo, najděte pomocí closest().