Datumvalidierer am DatePicker lösen falsch negative Ergebnisse in IE7 / IE8 aus

8

Ich habe eine grundlegende Validierung für ein Formular, das zwei jQuery UI DatePickers enthält. Das Format des Datums ist JJ-MM-TT. Es gibt eine erforderliche und Datum Validierung für beide DatePicker.

Diese funktionieren wie erwartet in Chrome & amp; FF, aber in IE7 / IE8 falsch negative (ungültige Eingabe wird als ungültig bezeichnet) auslösen.

Datumswähler-Setup:

%Vor%

Dies ist nicht verwandt, aber ich dachte, ich würde, nur für den Fall:

%Vor%

Die tatsächliche Validierung:

%Vor%

In IE7 / IE8 führt eine gültige Eingabe (nur das Auswählen eines Datums) mit beiden DatePickern zum Datum Fehler ("Ungültiges Datum. Muss formatiert sein JJJJ-MM-TT"). In anderen Browsern tritt dies nicht auf.

Es erzeugt auch keine Javascript-Fehler.

Vielen Dank im Voraus,

Ian

    
Ian Bishop 26.01.2011, 20:07
quelle

5 Antworten

13

Ich glaube, Sie suchen nach der Option dateISO :

%Vor%

IE analysiert keine Daten im yyyy-mm-dd -Format, weshalb die normale date im IE nicht funktioniert. Ich glaube, jQuery validate verwendet nur Date.parse oder new Date(dateString) , um die Gültigkeit zu überprüfen. Um dies zu überprüfen, versuchen Sie new Date("1987-11-14") und alarmieren den Wert in IE und FF. Sie erhalten NaN in IE und ein Datumsobjekt in FF.

Hier ist ein funktionierendes Beispiel: Ссылка

    
Andrew Whitaker 27.01.2011, 02:24
quelle
3

Beispiel zur Überwindung von IE NaN

%Vor%     
Manoj Yadav 27.05.2011 06:28
quelle
1

Senden Sie das Datum, wie Sie es formatiert, in ein verstecktes Feld in Ihrem Formular mit altField und altFormat , das hat meine NaN-Fehler behoben.

%Vor%     
Andrew Smith 13.09.2011 04:34
quelle
0

Ich hatte ein Problem in meinem eigenen Code, wo das Datumsformat das selbe war wie oben beschrieben und das Formular in der JSP (mit ein wenig Unterstützung von Form-Tags von Spring) sah so aus:

%Vor%

Das Problem war, dass das Datumsfeld optional ist (erforderlich in den JQuery-Validierungsregeln = false), aber es verwendete DatePicker und wurde somit automatisch validiert, wenn es ausgefüllt wurde. Das Problem war, dass es in allen Browsern und auf IE9 (und höher) korrekt validiert wurde, aber auf IE8 verursachte es einen "ungültigen Datums" -Validierungsstopp.

Ich habe mit den jquery-Validierungsregeln gespielt, ich habe versucht, dateISO zu verwenden (obwohl ich keineswegs sage, dass diese Lösung für einige nicht funktioniert), ohne Erfolg.

Es stellte sich heraus, dass ich in meinem Fall nur das Attribut 'type="date" entfernen musste. Jetzt wird das Datum korrekt validiert und bleibt ein optionales Feld.

    
Ilia Koulikov 08.11.2013 17:04
quelle
0

In meinem Fall führte das Attribut class="date" (nicht type="date") für das Eingabefeld dazu, dass der Validator dem Feld automatisch eine Datumsüberprüfung hinzufügte, was das falsche Negativ in IE8 auslöste. Also habe ich die Klasse in 'date-select' geändert und dann die dateISO-Regel wie in Andrew Whitakers Antwort verwendet.

    
escapisam 03.09.2014 23:26
quelle