2013-04-03 20 views
7

sto usando un plugin datetimepicker che ho trovato here che funziona abbastanza bene.jquery metodo validate metti in convalidare datetime

L'unico problema ora è che si interrompe la convalida della data standard inclusa con lo jquery validation plugin a causa del tempo aggiunto alla fine della stringa nella casella di input.

Ecco quello che ho finora in un demo. Ho aggiunto un metodo di convalida che controlla se il valore è una data, ma non accetta l'ora.

Ho bisogno di aiuto con la scrittura del metodo di convalida personalizzato. Come dividere la stringa date e time e quindi eseguire i test per convalidarli?

Grazie

+0

Non v'è alcun funzionamento data-picker in jsFiddle. – Sparky

+0

@Sparky Ricevo un messaggio di spunta quando cerco di accedere al sito di addon DateTimePicker. C'è un modo per caricare la libreria invece di puntarla? Sto indovinando no. –

+0

Funziona di nuovo. –

risposta

17

Hai già validazione per la regola date. In caso contrario, si può guardare dentro il plugin jQuery Convalida per ottenere che:

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

Ecco un metodo personalizzato che ho trovato per la convalida la parte time della stringa.

$.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."); 

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

semplicemente combinare le due funzioni nel vostro metodo di "DateTime". Quindi dividere il valore di input nello spazio e testare di conseguenza ogni parte.


Ecco una demo in cui ho combinato i metodi Ora Data & insieme. Accetta il seguente formato, yyyy/mm/dd hh:mm, quindi dovrai semplicemente modificarlo un po '.

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

1

La raccoglitrice datetime che lei ha citato, dice che usa widget di datepicker di jQuery UI. Puoi controllare il formato della data che ricevi dal widget usando l'API ui datepicker, in particolare lo dateFormat method.

Si dovrebbe essere in grado di impostare il DatePicker fino a fornire una data nel formato di cui avete bisogno per la vostra convalida.

Spero che questo aiuti!

+0

L'impostazione dei formati di data e ora non viene eseguita correttamente. Penso davvero che avrò bisogno di un metodo di convalida personalizzato per gestire la stringa composta di Date e Time. –

1

Potrebbe suggerirti di cambiare plug-in? http://www.datejs.com/ ha un numero eccezionale di modi per convalidare date e po 'di zucchero sintattico ridicola:

// 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

Darò un'occhiata al plug-in e vedrò se soddisfa le mie esigenze. Grazie –

+0

@ Wartickler- la libreria è ancora in stato Alpha. Sembra buono ma vorrei qualcosa di più maturo. Grazie –

+0

È Javascript! (anche se in stile jQuery) Quanto più maturo hai bisogno! (O; – Kristopher

Problemi correlati