Datum validator auf DatePicker-trigger false negative-Fehler im IE7/IE8
Habe ich einige grundlegende überprüfung in einer form, die zwei jQuery-UI DatePickers. Das format des Datums ist yy-mm-dd. Es ist ein erforderlich und Datum überprüfung auf DatePickers.
Diese wie erwartet funktionieren, in Chrome & FF, aber trigger false negative (gültige Eingabe ist angeblich ungültig) im IE7/IE8.
Datum-picker-setup:
$('.datepicker').datepicker({
dateFormat: 'yy-mm-dd'
});
Dies ist unabhängig von, aber ich dachte, ich würde, nur für den Fall:
$.validator.addMethod("endDate", function(value, element) {
var startDate = $('#startDate').val();
return Date.parse(startDate) <= Date.parse(value);
});
Die tatsächliche Validierung:
$('#ExampleForm').validate({
rules: {
StartDate: {
required: true,
date: true
},
EndDate: {
required: true,
date: true,
endDate: true
}
},
messages: {
StartDate: {
required: "Start Date required",
date: "Invalid date. Must be formatted yyyy-mm-dd"
},
EndDate: {
required: "End Date required",
date: "Invalid date. Must be formatted yyyy-mm-dd",
endDate: "Start date must occur before end date."
}
},
errorPlacement: function(error, element) {
error.appendTo(element.parent().next());
},
submitHandle: function(form) {
form.submit();
}
});
Im IE7/IE8, gültige Eingabe (nur Kommissionierung ein Datum) mit beiden DatePickers wird Ergebnis in der Datum Fehlermeldung ("Ungültiges Datum. Muss formatiert yyyy-mm-dd"). Dies gilt nicht auftreten in anderen Browsern.
Es ist auch nicht produzieren keine Javascript-Fehler.
Vielen Dank im Voraus,
Ian
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, Sie suchen für die
dateISO
option:IE nicht analysieren Daten in
yyyy-mm-dd
- format, das ist, warum mit regulärendate
scheitert im IE. Ich glaube, jQuery Validierung, nur verwendetDate.parse
odernew Date(dateString)
auf Gültigkeit überprüfen. Um dies zu überprüfen, versuchen Sienew Date("1987-11-14")
und Alarmierung der Wert im IE und FF. Sie erhaltenNaN
im IE und eines date-Objekts in FF.Hier ist ein funktionierendes Beispiel: http://jsfiddle.net/andrewwhitaker/QqSrJ/2/
Beispiel zu überwinden IE NaN
Senden Sie das Datum, wie Sie es brauchen formatiert werden, um ein verstecktes Feld im Formular mit
altField
undaltFormat
dies meine Feste NaN-Fehler.Hatte ich ein problem, in meinem eigenen code, wo das Datum in das format war das gleiche, wie oben beschrieben, und die form in der JSP (mit ein wenig Hilfe von Spring form-tags) sah so aus:
War das problem das Sie das date-Feld ist optional, required=false, JQuery, validation rules), aber es verwendet, DatePicker, und war somit automatisch validiert, wenn es gefüllt war. Das problem war, dass auf alle Browser und IE9 (und) auch nicht korrekt validiert, aber auf IE8, verursacht es einen "ungültiges Datum" überprüfung stoppen.
Spielte ich mit dem jquery-validation-Regeln, habe ich versucht, mit dateISO (obwohl ich keineswegs sagen, dass diese Lösung nicht funktioniert für einige), ohne Erfolg.
Stellt sich heraus, dass in meinem Fall, alle die ich tun musste, war, entfernen Sie das Attribut 'type="date"'. Jetzt das Datum überprüft, richtig, und bleibt ein optionales Feld.
In meinem Fall die class="Datum" attributes (nicht type="date") auf das Eingabefeld verursacht wurde-validator automatisches hinzufügen von Datum überprüfung auf dem Feld, die ausgelöst, die falsch-negativ-im IE8. Also wechselte ich die Klasse 'Datum auswählen', dann verwendet die dateISO Regel wie in Andrew Whitaker ' s Antwort.