2013-04-03 13 views
7

Używam wtyczki datetimepicker, którą znalazłem here, która działa całkiem dobrze.jquery sprawdź poprawność metody dodawania datetime

Jedyny problem polega na tym, że łamie standardową walidację daty zawartą z jquery validation plugin z powodu dodanego czasu na końcu łańcucha w polu wprowadzania.

Oto, co mam do tej pory w demo. Dodałem metodę sprawdzania poprawności, która sprawdza, czy wartość jest datą, ale nie akceptuje czasu.

Potrzebuję pomocy w pisaniu niestandardowej metody sprawdzania poprawności. Jak podzielić ciąg znaków date i time, a następnie wykonać testy, aby je sprawdzić?

Dzięki

+0

Nie ma funkcjonowanie data-zbieracz w jsFiddle. – Sparky

+0

@Sparky Otrzymuję zabronione, gdy próbuję przejść do strony dodatku DateTimePicker. Czy istnieje sposób na przesłanie biblioteki zamiast jej wskazania? Zgaduję, że nie. –

+0

To znowu działa. –

Odpowiedz

17

Ty już masz walidacji dla reguły date. W przeciwnym razie, można zajrzeć do wnętrza wtyczki jQuery Sprawdź w celu uzyskania że:

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

Oto sposób niestandardowy znalazłem walidacji część time swojego łańcucha.

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

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

Wystarczy połączyć dwie funkcje do swojego "DateTime" metody. Następnie podziel swoją wartość wejściową w przestrzeni i przetestuj każdą część odpowiednio.


Oto demo gdzie mam połączeniu metod data godzina & razem. Przyjmuje następujący format, yyyy/mm/dd hh:mm, więc po prostu trzeba go trochę poprawić.

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

1

Selektor datetime wspomniał Pan mówi, że używa widżet datepicker jQuery UI jest. Możesz kontrolować format daty otrzymanej z widżetu za pomocą interfejsu API interfejsu użytkownika interfejsu użytkownika, w szczególności: dateFormat method.

Powinieneś być w stanie ustawić datepicker w celu podania daty w formacie wymaganym do sprawdzenia poprawności.

Nadzieję, że pomaga!

+0

Ustawienie formatu daty i czasu nie jest poprawnie sprawdzane. Naprawdę myślę, że potrzebuję niestandardowej metody sprawdzania poprawności, aby obsłużyć złożony łańcuch daty i czasu. –

1

Czy mogę zaproponować zmianę wtyczek? http://www.datejs.com/ ma wyjątkową liczbę sposobów potwierdzającymi dat i trochę śmieszny cukier syntaktyczny:

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

Spojrzę na tę wtyczkę i zobaczę, czy pasuje ona do moich potrzeb. Dzięki –

+0

@ Wartickler - biblioteka nadal znajduje się w stanie Alfa. Wygląda dobrze, ale chciałbym czegoś bardziej dojrzałego. Dzięki –

+0

To jest JavaScript! (choć, jQuery-style) Jak dużo bardziej dojrzałe potrzebujesz! (O; – Kristopher

Powiązane problemy