Nové prvky pro vaše formuláře: datum, čas, barvy a čísla
Formuláře v Nette přináší do svého arzenálu nové interaktivní prvky, které usnadňují práci s datem, časem, barvami a desetinnými čísly.
Datum a čas
Zbavme se závislosti na JavaScriptových date/time pickerech. Současné
prohlížeče již nabízejí tuto funkcionalitu nativně a bez chyb. Nette
proto přichází s jejich podporou včetně plnohodnotné validace na straně
klienta i serveru. S novými metodami addDate()
,
addTime()
a addDateTime()
můžete nyní jednoduše
přidat elementy pro zadávání časových údajů do vašich formulářů:
$form->addDate('birthday', 'Datum narození:');
$form->addTime('alarm', 'Čas buzení:');
$form->addDateTime('meeting', 'Datum a čas schůzky:');
Každý z těchto prvků vrací po odeslání objekt
DateTimeImmutable
. Umožňuje také snadné nastavení
minimálního a maximálního data/času a možnost zadávat i sekundy:
$form->addTime('detailedTime', 'Přesný čas:', withSeconds: true)
->addRule($form::Min, 'Nejvýše hodinu zpátky', new DateTime('-1 hours'));
Svět plný barev
Stojíte před úkolem nechat uživatele vybrat barvu? Díky nové metodě
addColor()
výběr barvy bude hračka:
$form->addColor('favoriteColor', 'Oblíbená barva:');
Hodnotu vrací v hexadecimálním formátu #rrggbb
. Mimochodem,
s tímto formátem umí nově pracovat
i třída Image
:
$image = Image::fromBlank(100, 200, ImageColor::hex('#3C8ED7'));
Přesnost desetinných míst
Pro aplikace, kde každé desetinné místo má svůj význam, je tu
addFloat()
. Tento prvek umožňuje uživatelům zadávat desetinná
čísla, opět s validací na straně klienta i serveru:
$form->addFloat('price', 'Cena:')
->setRequired();
Dokumentace vám poradí, jak nastavit prvek tak, aby akceptoval jako oddělovač desetinných míst jak tečku, tak i čárku.
Tyto novinky v Nette Forms jsou tu proto, aby práce s formuláři byla pro vás zase o něco příjemnější. Happy coding!
Komentáře
Super, konečně se zbavím tohoto:
$form->addText(‚date‘, ‚Datum a čas‘)->setHtmlAttribute(‚type‘, ‚datetime-local‘);
a při editaci
$defaults[‚date‘] = $defaults[‚date‘]->format(‚Y-m-d‘);
Vyzkoušel jsem a splňuje všechny očekávání. Profesionálně provedeno.
Super, tohle mi chybělo!!!! Děkuji za skvělou práci.
Parada! Zrovna jsem chtel tuhle vec (datum) hledat do dokumentace a vidim, ze sviti novinka v blogu… ok, nejprve kouknu do blogu a… Zrovna se tam resi presne to, co jsem chtel jit hledat 🙂
Tohle vypadá super!
Chcete-li odeslat komentář, přihlaste se