Zusammenfassung
In dieser Lektion hast du gelernt:
- Ein Handler bekommt das Ereignisobjekt als Argument:
function (event) { ... }.event.targetist das Element, an dem das Ereignis passiert ist, sodass eine Funktion mehrere Elemente behandeln kann. - Attribute, die mit
data-beginnen, speichern deine eigenen Daten in Elementen:data-farbe="teal"istelement.dataset.farbe, immer als Text. - Ereignisse steigen durch die Elemente auf, in denen das Ziel steht, sodass ein Handler an einer Liste Klicks auf alle ihre Einträge behandelt, auch auf später hinzugefügte.
event.target.closest("li")findet den angeklickten Eintrag oder gibtnullzurück. - Das Ereignis
inputkommt nach jeder Änderung des Textes eines Feldes, sodass die Seite reagieren kann, während der Nutzer tippt.changekommt, wenn sich eine Auswahl ändert: dervalueeinesselectoder dascheckedeiner Checkbox (trueoderfalse). - Text hat die Methoden
includes(),toLowerCase()undtrim(), das die Leerzeichen am Anfang und Ende entfernt. keydownkommt bei jeder gedrückten Taste, undevent.keysagt, welche es war:"a","Enter","Escape", mit Großbuchstaben genau wie geschrieben.- Ein
formwird mit seinem Button zum Abschicken oder mit Enter abgeschickt, und dann bekommt essubmit. Rufe im Handlerevent.preventDefault()auf, sonst lädt der Browser die Seite neu, und alles Getippte ist weg. - Prüfe, bevor du verwendest, was getippt wurde: leer, zu kurz, keine Zahl (
Number.isNaN(), niemals=== NaN). Zeige jeden Fehler neben seinem Feld, leere ihn, sobald das Feld richtig ist, und erfülle die Aufgabe des Formulars nur, wenn jedes Feld richtig ist.
In der nächsten Lektion, Checkpoint: Registrierungsformular, wendest du all das in einem Registrierungsformular an, das sich selbst prüft: Es sagt Feld für Feld, was nicht stimmt, und begrüßt den neuen Nutzer, wenn alles richtig ist.
Aber zuerst noch etwas Übung: eine Haftnotiz, die du beschriften und einfärben kannst. script.js ist wieder leer, und du schreibst das ganze Programm selbst.
So schreibst du es:
Anweisungen
- 1
Lass die Notiz anzeigen, was im Feld
#textsteht, während du tippst: Setze nach jeder Änderung des Textes des Feldes den Text in#notiz. - 2
Ein Klick auf einen Button in
#farbenändert die Hintergrundfarbe von#notiz(ihrstyle.backgroundColor) auf die Farbe imdata-farbedes Buttons. Die Buttons haben keineid, also gib#farbeneinen Klick-Handler und finde den angeklickten Button mitclosest().