Ein Datum auf Gültigkeitsbereich prüfen?

1 Antwort

HTML-Auszug:

<input id="dateField" type="date">
<p id="output"></p>

JavaScript:

function checkDate() {
  const minDate = new Date("1900-01-01");
  const maxDate = new Date();
  const inputDate = new Date(this.value);

  if (inputDate < minDate) {
    output.textContent = "Das Datum ist zu niedrig.";
  }
  else if (inputDate > maxDate) {
    output.textContent = "Das Datum ist zu hoch.";
  }
  else {
    output.textContent = "Das Datum ist im gültigem Bereich.";
  }
}

const output = document.getElementById("output");
document.getElementById("dateField").addEventListener("input", checkDate);

Korrekturen:

  • Die Datumsobjekte können direkt miteinander verglichen werden. Du hast allerdings versucht, Strings gegenseitig aufzuwiegen.
  • Beachte außerdem, dass sich JavaScript case-sensitiv verhält. Die Variable InputDate gibt es bei dir daher nicht.
  • Sofern in der Ausgabe nur der aktuelle Status als Plaintext stehen soll, reicht das textContent-Property und eine einfache Zuweisung.
  • Ich habe alle Bezeichner einheitlich in englischer Sprache gehalten (bei dir ist es ein Sprachmix), was den Code leichter lesbar machen sollte. Da keine der Variablen ihren Wert ändern soll, können sie alle als konstant markiert werden.