Formuláře a ->setDisabled(). Každý prvek se chová jinak
- MartinitCZ
- Člen | 580
Toto chování mě dost udivuje:
Mám toto nastavení v presenteru (podle role potřebuji některé věci vypnou):
$this['mujForm']['input']->setDisabled();
$this['mujForm']['select']->setDisabled();
$this['mujForm']['checkbox']->setDisabled();
Ve zpracování to dopadne takto:
$this['mujForm']['input'] // V $form->getValues() vůbec není
$this['mujForm']['select'] // V $form->getValues() vůbec není
$this['mujForm']['checkbox'] // V $form->getValues() to vždy vrátí FALSE
Dost mě zaráží, proč se chcekbox předá, ale ostatní ne? Totiž, tohle
skvělé chování przní data!!!
Nette 2.0.13.
Editoval martinit (28. 11. 2013 17:22)
- MartinitCZ
- Člen | 580
@**David Grudl**: Problém je v tom, že checkbox, narozdíl od
inputů, ->setDisabled() v render<> ovlivní jen na půl.
Checkbox je po vykreslení „vypnutý“, ale předá se.
A ano vím, že by se toto mělo dělat v action :)
Editoval martinit (28. 11. 2013 22:16)
- petr.pavel
- Člen | 535
@martinit: Myslím, že David ti chtěl říct, že jeho checkbox nevrací vždy FALSE :-) Nejlepší bude, když pošleš co nejmenší kus kódu, který chybu ukazuje a každý si to bude moci vyzkoušet. Taky třeba sám přijdeš na to, že problém je někde jinde (třeba mu nastavuješ výchozí hodnotu).