Die Eingabe prüfen
Klicke einmal auf Hinzufügen, wenn beide Felder leer sind. Ein Produkt ohne Namen für 0 € erscheint in der Liste. Eine gute App akzeptiert solche Daten nicht: Sie prüft, was der Nutzer getippt hat, und sagt, was nicht stimmt.
Die Prüfungen stehen am Anfang des Klick-Handlers, bevor das Produkt hinzugefügt wird. Wenn etwas nicht stimmt, zeigt der Handler eine Meldung im Absatz nachricht an und endet mit return. Wie du aus der Lektion über Funktionen weißt, beendet return die Funktion, der Code, der das Produkt hinzufügt, läuft also nicht:
if (name === "") {
nachricht.textContent = "Gib ein, was du kaufen möchtest.";
return;
}Und der Preis? Wenn das Preisfeld leer ist, ist sein Wert der leere Text "", und Number("") ist 0. Ein Feld für Zahlen gibt dir auch dann leeren Text, wenn das, was darin steht, keine gültige Zahl ist. Eine einzige Bedingung, preis <= 0, fängt also einen leeren Preis ebenso ab wie null und negative Preise.
Und wenn alles in Ordnung ist, darf keine alte Meldung auf der Seite stehen bleiben, leere sie also, bevor du das Produkt hinzufügst.
So schreibst du es:
Anweisungen
- 1
Füge am Anfang des Klick-Handlers (direkt nach dem Lesen von
nameundpreis) eine Bedingung hinzu: Wennnameleer ist (""), zeigeGib ein, was du kaufen möchtest.innachrichtan und beende den Handler mitreturn. - 2
Füge eine zweite Bedingung hinzu: Wenn
preis0oder weniger ist, zeigeGib einen Preis größer als 0 ein.innachrichtan und beende den Handler mitreturn. - 3
Wenn beide Prüfungen bestanden sind, leere die Meldung (
nachricht.textContent = ""), bevor du das Produkt hinzufügst. Probiere es aus: Klicke auf Hinzufügen, wenn ein Feld leer ist, und füge dann ein richtiges Produkt hinzu. Die Meldung verschwindet.