Wie kann ich ein benutzerdefiniertes Datumsformat angeben, das mit dem Validierungs-Plugin für jQuery validiert werden soll ?
84
Wie kann ich ein benutzerdefiniertes Datumsformat angeben, das mit dem Validierungs-Plugin für jQuery validiert werden soll ?
Mit der addMethod
Funktion können Sie Ihre eigene benutzerdefinierte Validierungsmethode erstellen . Angenommen, Sie wollten "TT / MM / JJJJ" validieren:
$.validator.addMethod(
"australianDate",
function(value, element) {
// put your own logic here, this is just a (crappy) example
return value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/);
},
"Please enter a date in the format dd/mm/yyyy."
);
Und dann fügen Sie auf Ihrem Formular hinzu:
$('#myForm')
.validate({
rules : {
myDate : {
australianDate : true
}
}
})
;
// put your own logic here, this is just a (crappy) example
myDate
den Namen des Datumseingabefelds ändern sollten .Die Antwort von nickf ist gut, aber beachten Sie, dass das Validierungs-Plug-In bereits Validatoren für mehrere andere Datumsformate in der Datei Additional-methods.js enthält. Stellen Sie vor dem Schreiben Ihrer eigenen sicher, dass dies noch nicht geschehen ist.
quelle
Ich persönlich benutze die sehr gute http://www.datejs.com/ Bibliothek.
Docco hier: http://code.google.com/p/datejs/wiki/APIDocumentation
Sie können Folgendes verwenden, um Ihr australisches Format abzurufen und den Schalttag am 29.02.2012 und nicht am 29.02.2011 zu validieren:
Ich verwende auch das maskierte Eingabe-Plugin, um die Daten zu standardisieren. Http://digitalbush.com/projects/masked-input-plugin/
quelle
Hier ist ein Beispiel für eine neue Validierungsmethode, mit der nahezu jedes Datumsformat validiert werden kann, einschließlich:
Wenn Sie den Wert dann an das PHP übergeben, können Sie ihn mit strtotime konvertieren
So fügen Sie die Methode hinzu:
Dann fügen Sie den neuen Filter hinzu mit:
;;
quelle
mmm
/^(0?[1-9]|[12][0-9]|3[0-1])[/., -](0?[1-9]|1[0-2]|[a-zA-Z]{3})[/., -](19|20)?\d{2}$/
Hier ist ein spezielles Codebeispiel, das kürzlich für mich funktioniert hat:
Ich sollte beachten, dass dies tatsächlich die integrierte Routine zur Datumsüberprüfung ersetzt, obwohl ich nicht sehen konnte, dass dies ein Problem mit dem aktuellen Plugin verursachen sollte.
Ich habe dies dann auf das Formular angewendet, indem ich:
quelle
Ich kombiniere / ändere frühere Beiträge, um mein gewünschtes Ergebnis zu erzielen:
Fügen Sie nach Ihrer Validierungskonfiguration eine Datumsüberprüfung hinzu. Dh nach dem Aufruf der Methode $ (form) .validate ({...}).
Schließlich wurde die Hauptfunktion isDate Javascript für das UK-Datumsformat geändert
quelle
Jon, du hast einige Syntaxfehler, siehe unten, das hat bei mir funktioniert.
quelle
Sie können wie eingeben
yyyy-mm-dd
auchyyyy/mm/dd
aber ich kann die Größe des Monats nicht irgendwann im Februar nur 28 oder 29 Tage beurteilen.
quelle
Check out: jQuery Masked Input Plugin
quelle
@blasteralfred:
Ich habe die folgende Regel zur Bestätigung des korrekten Datums für mich erhalten (TT MM JJJJ)
);
Für TT / MM / JJJJ
);
Dies gilt nicht für den 13.01.2017 und den 13.01.2017.
Und validiert auch nicht 50 12 2017 und 50/12/2017.
quelle
Ist einfach, Beispiel: Gültig für HTML5 automatisch type = "date" .
quelle