JavaScript soll kontrollieren: Sind Felder ausgefüllt?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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 {
  // ...
}

Krisssiii777 
Fragesteller
 03.02.2022, 00:20

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

0
regex9  03.02.2022, 00:24
@Krisssiii777

So jedenfalls nicht.

  1. Der if-Kopf wird immer von runden Klammern umrahmt.
  2. 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 {
  // ...
}
1
Von Experte CatsEyes bestätigt

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.

Woher ich das weiß:eigene Erfahrung

Krisssiii777 
Fragesteller
 03.02.2022, 00:18

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?

1
Neuerfan1  03.02.2022, 00:27
@Krisssiii777

So in der Art. Kenne mich mit Javascript aber leider so gut wie gar nicht aus...

1