JavaScript soll kontrollieren: Sind Felder ausgefüllt?
Hey, wenn man z.B. mit JavaScript kontrollieren möchte, ob ein Feld für einen Namen oder ein Feld für eine Adresse oder so ausgefüllt ist, wie genau mach ich das?
Ich denk mal man benutzt if/else aber ich weiß nicht genau wie man das schreiben würde
2 Antworten
Im einfachsten Fall brauchst du gar kein JavaScript. Das required-Attribut kann völlig ausreichen, um ein Feld als erforderlich zu kennzeichnen.
<form name="form">
<input required>
<button>Send</button>
</form>
Um aber dennoch ein Beispiel mit JavaScript zu zeigen:
<form name="form">
<input required
<button>Send</button>
</form>
<script>
document.forms["form"].addEventListener("submit", e => {
const fields = document.forms["form"].elements;
for (const field of fields) {
if (!field.checkValidity()) {
e.preventDefault();
return;
}
}
});
</script>
Hier wird das submit-Event des Formulars abgefangen. Die Funktion durchläuft alle Felder und prüft, ob sie valid sind. Dies konzentriert sich erneut darauf, ob ein required-Attribut gesetzt wurde oder nicht.
Wenn man kein required-Attribut setzen möchte, könnte man ebenso den Wert auf diese Weise prüfen:
if (!field.value.length) {
// empty ...
}
else {
// ...
}
So jedenfalls nicht.
- Der if-Kopf wird immer von runden Klammern umrahmt.
- Du nimmst bei dir eine Zuweisung vor, keinen Vergleich. Für Vergleiche wird ein Vergleichsoperator benötigt (== oder ===).
Wenn die Variable name den eingegebenen Wert beinhaltet, würde es also so klappen:
if (name === "") {
// ...
}
else {
// ...
}
Ganz einfach, wenn ein Feld nicht ausgefüllt ist, dann ist es leer.
Um also etwa den Fall abzufangen, dass ein oder mehrere Felder nicht ausgefüllt wurden, dann baust du für jedes Feld eine Bedingung ein wie
if xy = "" then [...]
Vorher soll natürlich die Variable xy mit dem Inhalt des ausgewählten Feldes belegt werden. "" ist ein String der Länge 0 und damit der Inhalt eines "leeren" Textfeldes.
also wenn ich z.B. schreibe
if name = "" {
console.log("Bitte Name eingeben");
}
else {
}
Dann würde mir der Code, wenn ich nichts eintrage, "Bitte Name eingeben" ausgeben, aber falls etwas angegeben wurde, einfach nichts oder?
So in der Art. Kenne mich mit Javascript aber leider so gut wie gar nicht aus...
if name = "" {
console.log("Bitte Name eingeben");
}
else {
}
Würde das so nicht auch funktionieren?
Zum Verständnis, ich bin noch Anfänger und die Aufgabe muss eine einfache Lösung haben, deine Antwort ist mir aber noch zu komplex :(
Aber vielen Dank natürlich