2013-04-03 17 views
7

Ich benutze ein DateTimePicker Plugin, das ich here gefunden habe, das ganz gut funktioniert.jquery validate hinzufügen Methode zu validieren datetime

Das einzige Problem ist jetzt, dass es die Standard-Datumsüberprüfung bricht, die mit der jquery validation plugin wegen der hinzugefügten Zeit am Ende der Zeichenfolge im Eingabefeld enthalten ist.

Hier ist was ich bisher in einer demo. Ich habe eine Validierungsmethode hinzugefügt, die überprüft, ob der Wert ein Datum ist, aber die Zeit nicht akzeptiert.

Ich brauche Hilfe beim Schreiben der benutzerdefinierten Validierungsmethode. Wie teile ich die Zeichenfolge date und time und führe dann die Tests durch, um sie zu validieren?

Dank

+0

Es gibt keine Funktion Datumsauswahl in Ihrem jsFiddle. – Sparky

+0

@Sparky Ich erhalte eine Verbotenheit, wenn ich versuche, zur DateTimePicker-Addon-Site zu navigieren. Gibt es eine Möglichkeit, die Bibliothek hochzuladen anstatt darauf zu zeigen? Ich vermute nicht. –

+0

Es funktioniert wieder. –

Antwort

17

Sie haben bereits die Validierung für die date Regel haben. Andernfalls können Sie in der jQuery Validate-Plugin schauen, um das zu erhalten:

date: function(value, element) { 
    return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString()); 
}, 

Hier ist eine benutzerdefinierte Methode, die ich für die Validierung des time Teil Ihrer Zeichenfolge gefunden.

$.validator.addMethod("time", function (value, element) { 
    return this.optional(element) || /^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$/i.test(value); 
}, "Please enter a valid time."); 

Zeit Demo: http://jsfiddle.net/9CdvN/

einfach kombinieren die beiden Funktionen in die "Datetime" -Methode. Teilen Sie dann Ihren Eingabewert in der Leerstelle und testen Sie jeden Teil entsprechend.


Hier ist eine Demo, wo ich das Datum & Zeit Methoden miteinander kombiniert haben. Es akzeptiert das folgende Format, yyyy/mm/dd hh:mm, also müssen Sie es einfach ein wenig zwicken.

http://jsfiddle.net/9CdvN/2/

1

Die Datetime-Picker Sie erwähnt sagt es jQuery UI Datepicker Widget verwendet. Sie können das Format des Datums, das Sie vom Widget erhalten, mit der ui datepicker API, insbesondere dateFormat method, steuern.

Sie sollten in der Lage sein, den Datepicker so einzustellen, dass er ein Datum in dem Format liefert, das Sie für Ihre Validierung benötigen.

Hoffe, dass hilft!

+0

Das Einstellen der Datums- und Uhrzeitformate wird nicht korrekt überprüft. Ich denke wirklich, dass ich eine benutzerdefinierte Überprüfungsmethode benötige, um die zusammengesetzte Datums- und Uhrzeit-Zeichenfolge zu verarbeiten. –

1

Darf ich Ihnen vorschlagen, Plugins zu wechseln? http://www.datejs.com/ hat eine hervorragende Reihe von Möglichkeiten, Termine und einige lächerlich syntaktischer Zucker zu überprüfen:

// Convert text into Date 
Date.parse('today'); 
Date.parse('t + 5 d'); // today + 5 days 
Date.parse('next thursday'); 
Date.parse('February 20th 1973'); 
Date.parse('Thu, 1 July 2004 22:30:00'); 
+0

Ich werde mir dieses Plugin ansehen und sehen, ob es meinen Bedürfnissen entspricht. Danke –

+0

@ Wartickler- die Bibliothek ist immer noch im Alpha-Status. Es sieht gut aus, aber ich möchte etwas reifer. Danke –

+0

Es ist Javascript! (Allerdings, jQuery-style) Wie viel reifer brauchen Sie! (O; – Kristopher

Verwandte Themen