Überprüfen Sie, ob Datum in der Vergangenheit ohne Absenden
Habe ich diesen code möchte ich prüfen ob ein Datum in der Vergangenheit liegt. Ich will es prüfen, sobald das Datum eingegeben wird, vor der form der Einreichung.
<input id="datepicker" onchange="checkDate()" required class="datepicker-input" type="text" data-date-format="yyyy-mm-dd" >
<script type="text/javascript">
function checkDate() {
var selectedDate = document.getElementById('datepicker').value;
var now = new Date();
if (selectedDate < now) {
alert("Date must be in the future");
}
}
</script>
Funktioniert das nicht, wenn ich geben Sie ein Datum in der Vergangenheit (z.B. 2014-12-03) es wird nicht angezeigt der Alarm.
- weil ein string, kein Datum.
- Die Eingabe wird in diesem format, obwohl yyyy-mm-dd
- Und das ist immer noch ein string, kein Datum. Der Eingabewert ist nicht ein Date-Objekt.
- oh, ok. wie kann ich es konvertieren?
- Haben Sie in Betracht gezogen, Zeitzonen, btw oder einfach nur, dass die Tatsache, dass die Benutzer ändern Ihre OS-Uhr aus irgendeinem Grund ? 🙂
- Ich habe server-seitige Validierung bereits umgesetzt. Aber ich möchte Echtzeit-Validierungs-als auch @ThongKuah
- Irgendeine Idee, über diese Frage stackoverflow.com/questions/42062690/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alles, was Sie tun müssen, konvertieren Sie die Zeichenfolge erzeugt, die durch die
<input>
in ein Datum mit der Date-Konstruktornew Date("2014-06-12")
JS:
HTML:
Den
date()
Funktion gibt einen string zurück. Versuchen Sie konvertieren beide Termine Ganzzahlen zuerst mit derDate.parse()
Funktion:HTML:
Dein code ist wirklich in der Nähe, versuchen Sie dies statt:
Für diejenigen, die mit Typ="Datum" (eingeführt mit HTML5) statt type="text", können Sie es auf diese Weise getan:
Einfache mine-Funktion arbeiten ...