Wie überprüfe / validiere ich in jQuery, ob das Enddatum [Textfeld] größer als das Startdatum [Textfeld] ist?
jquery
date
jquery-validate
Eingang
quelle
quelle
Antworten:
Nur Fusionen erweitern Antwort. Diese Erweiterungsmethode funktioniert mit dem jQuery-Validierungs-Plugin. Es werden Daten und Zahlen validiert
Um es zu benutzen:
oder
quelle
code
if (value == 0) {return true; } else if (! / Invalid | NaN / ...code
Das sollte es tun, denke ich
quelle
Etwas spät zur Party, aber hier ist mein Teil
Hier ist das Detail:
quelle
Referenz jquery.validate.js und jquery-1.2.6.js. Fügen Sie Ihrem Startdatum-Textfeld eine startDate-Klasse hinzu. Fügen Sie Ihrem Enddatum-Textfeld eine endDate-Klasse hinzu.
Fügen Sie diesen Skriptblock Ihrer Seite hinzu: -
Hoffe das hilft :-)
quelle
Ich habe nur an Danteunos Antwort herumgebastelt und festgestellt, dass sie zwar gut gemeint ist, aber leider in mehreren Browsern, die kein IE sind, kaputt ist . Dies liegt daran, dass der IE ziemlich streng ist, was er als Argument für den
Date
Konstruktor akzeptiert , andere jedoch nicht. Zum Beispiel gibt Chrome 18Dies führt dazu, dass der Code den Pfad "Datumsvergleiche" verwendet und von dort aus alles bergab geht (z. B.
new Date("11")
größer alsnew Date("66")
und dies ist offensichtlich das Gegenteil des gewünschten Effekts).Daher habe ich nach Prüfung den Code geändert, um dem Pfad "Zahlen" Vorrang vor dem Pfad "Datumsangaben" zu geben und zu überprüfen, ob die Eingabe tatsächlich numerisch ist, und zwar mit der hervorragenden Methode, die in Validieren von Dezimalzahlen in JavaScript - IsNumeric () bereitgestellt wird .
Am Ende wird der Code:
quelle
Die Datumswerte aus den Textfeldern können mit der .val () -Methode von jquery wie abgerufen werden
Ich würde dringend empfehlen, die Datumszeichenfolgen vor dem Vergleich zu analysieren. Das Date-Objekt von Javascript verfügt über eine parse () - Methode, unterstützt jedoch nur US-Datumsformate (JJJJ / MM / TT). Es gibt die Millisekunden seit Beginn der Unix-Epoche zurück, sodass Sie Ihre Werte einfach mit> oder <vergleichen können.
Wenn Sie verschiedene Formate wünschen (z. B. ISO 8661), müssen Sie auf reguläre Ausdrücke oder die kostenlose Bibliothek date.js zurückgreifen.
Wenn Sie sehr benutzerfreundlich sein möchten, können Sie anstelle von Textfeldern jquery ui datepickers verwenden. Es gibt eine Datumsauswahlvariante, mit der Datumsbereiche eingegeben werden können:
http://www.filamentgroup.com/lab/date_range_picker_using_jquery_ui_16_and_jquery_ui_css_framework/
quelle
Daher musste diese Regel optional sein, und keiner der oben genannten Vorschläge ist optional. Wenn ich die Methode aufrufe, wird sie nach Bedarf angezeigt, auch wenn ich einen Wert benötige.
Das ist mein Anruf:
Meine
addMethod
Antwort ist nicht so robust wie die von Mike E. am besten bewertete, aber ich verwende den JqueryUI-Datumsauswahlschalter, um eine Datumsauswahl zu erzwingen. Wenn mir jemand sagen kann, wie ich sicherstellen kann, dass die Daten Zahlen sind und die Methode optional ist, wäre das großartig, aber im Moment funktioniert diese Methode für mich:quelle
In Javascript / JQuery verwenden die meisten Entwickler den From & To-Datumsvergleich als Zeichenfolge, ohne ihn in das Datumsformat zu konvertieren. Der einfachste Weg, vom Datum zu vergleichen, ist größer als bis heute.
Analysieren Sie immer vor und nach dem Vergleich, um genaue Ergebnisse zu erhalten
quelle
Ich mag, was Franz gesagt hat, weil ich es benutze: P.
quelle
Oder besuchen Sie diesen Link
quelle
quelle
Hoffe das wird helfen :)
quelle
Zuerst teilen Sie die Werte von zwei Eingabefeldern mithilfe der Aufteilungsfunktion. dann das gleiche in umgekehrter Reihenfolge. nach concat nation parse es auf integer. Vergleichen Sie dann zwei Werte in der if-Anweisung. zB 1> 20-11-2018 2> 21-11-2018
Nach dem Aufteilen und Zusammenstellen neuer Werte für den Vergleich 20181120 und 20181121 werden die gleichen Werte danach verglichen.
quelle
das sollte funktionieren
quelle
Wenn das Format garantiert korrekt ist JJJJ / MM / TT und genau dasselbe zwischen den beiden Feldern, können Sie Folgendes verwenden:
Als Stringvergleich
quelle