Stránka DatePicker
- jarks
- Člen | 94
Dobrý den, podařilo se mi použít v aplikaci Datepicker a měl bych k němu 3 otázky. Možná je to spíš k JavaScriptu, ale nevím, co s tím, tak prosím o pomoc.
1. Nefunguje validace na REGEXP. Zatímco u tohoto, je všechno v pořádku:
$form->addText('test', 'Test')
->addRule(Form::REGEXP, 'Zadejte prosím platné datum.','/^\d{1,2}\s*\.\s*\d{1,2}\s*\.\s*(?:\d{2}|\d{4})$/');
Tohle neprojde nikdy, pokaždé vyjede chyba:
$form->addDatePicker('test', 'Test')
->addRule(Form::REGEXP, 'Zadejte prosím platné datum.','/^\d{1,2}\s*\.\s*\d{1,2}\s*\.\s*(?:\d{2}|\d{4})$/');
2. Když do políčka napíšu nějaké nesmyslné číslo a dám [Enter], změní se toto nesmyslné číslo na dnešní datum. Když ale místo toho stisknu [Tab], hausnumero zůstane nedotčené. Dá se to nějak napravit, to znamená, aby na [Tab] byla stejná reakce jako na [Enter]?
3. Datepickeru se dají nastavit parametry, jako třeba
changeYear: true
(link). Ale jak? Toto
řešení úpravou ve třídě DatePicker
je plně funkční,
ale jakým způsobem nastavení zapsat třeba jako externí .js?
Díky.
Další diskuse k DatePickeru:
https://forum.nette.org/…um-narodenia
https://forum.nette.org/…rms-vs-datum?…
https://forum.nette.org/…s-za-control
Editoval jarks (27. 7. 2009 20:52)
- jarks
- Člen | 94
1. Problém je v tom, že něco jiného se validuje na
straně prohlížeče a něco jiného na straně serveru. Pokud je datepicker
nastaven (dateFormat) aby zobrazoval 31.07.2009
a předhodíme to
validaci
->addRule(Form::REGEXP, 'Zadejte prosím platné datum.','/^\d{1,2}\s*\.\s*\d{1,2}\s*\.\s*(?:\d{2}|\d{4})$/');
na straně klienta to projde, ale na straně serveru ne, protože odesláno
je 2009-07-31
. Zřejmě za to může třída DatePicker a její
metody getValue(), setValue(). Jednou z možností by tak bylo validovat až
před odesláním modelu, nebo přímo v něm. Zabrat by mělo
^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))$
Editoval jarks (6. 8. 2009 7:53)