display none formular ->tabulka
- 22
- Člen | 1478
co takhle dokumentace? https://doc.nette.org/cs/forms#…
Editoval 22 (18. 9. 2010 19:57)
- masterr
- Začátečník | 141
22 napsal(a):
co takhle dokumentace? https://doc.nette.org/cs/forms#…
To jsem samozřejmě přočetl.
Mám select v něm čísla od 0 do 20, podle toho který vybereš se zobrazí pomocí js input boxů(na upload obrazků). Nejprve je skryju (display:none;) pak odkryju (display:block;). Akorát ta tabulka, kterou vytváří nette tam zůstava, ikdyž je skrytej.
Každý řádek v tý tabulce pak zabírá cca 3px. Toho se chci zbavit tim ze budu skryvat celý <tr> …</tr> v tabulce, ale jen tam kde bude ten input box na upload.
Otázka z ní, jak mám nastavit id prave tem <tr> kde jsou ty input boxy? Popřípadě jestli znáte nějaké lepší řešení, zkuste mi ho navrhnout. (Mě se tohle docela líbí.)
- Patrik Votoček
- Člen | 2221
tak takhle to určitě nejde… :-)
$form = new AppForm($this, $name);
$form->renderer->wrappers['pair']['container'] = "tr class=hide";
- Patrik Votoček
- Člen | 2221
22 napsal(a):
mi to teda funguje a navíc zůstane zachována class „required“ eventuelně:
$renderer->wrappers['pair']['container'] = Html::el('tr')->class('hide');
ja ale narážel primárně na $form = new AppForm($name);
:-)
- masterr
- Začátečník | 141
Tohle mi ale nastavi tu třídu u každýho <tr> já potřebuji.
Nastavit vždy jen u toho aktuálního.
Potřebuji nastavit třído stejný jako name input.
Něco takovýho:
if_exist($input->name){
$renderer = $form->getRenderer();
$renderer->wrappers['pair']['container'] = Html::el('tr')->class(''.$input->name.'');
}
Jak se to da napsat?
Najdu někde přehled tehle věcí? To nemuzu najít…Dík
Editoval masterr (19. 9. 2010 14:40)
- arron
- Člen | 464
masterr napsal(a):
Tohle mi ale nastavi tu třídu u každýho <tr> já potřebuji. Nastavit vždy jen u toho aktuálního.
To je pravda. Je potreba si uvedomit, ze ten renderer nedokaze cist programatorovy myslenky, kde by si pral jakou tridu. Proto je dobre ho vyuzivat, kdyz nechces nejake speciality. Da se mu nastavit spoustu parametru, ale vsechny plati pro cele renderovani (cili jak Ty rikas „u kazdyho <tr>“).
Jak se to da napsat?
Mam obavu, ze tohle pomoci ConventionalRenderer
napsat nepujde.
Takze bud si napises svuj vlastni renderer a nebo ten formular vyrenderujes
rucne v sablone.
BTW. neumi jQuery hledat i nadrazene tagy? Tim by se to dalo vyresit.
Najdu někde přehled tehle věcí? To nemuzu najít…Dík
Nejsem si jisty, jestli je nekde nejak sepsano, co vsechno umi
ConventionalRenderer
, ale me osobne uplne nejvic pomohlo, kdyz jsem
si prosel jeho zdrojovy kod. Tak jsem si uvedomil vsechny jeho moznosti a hlavne
vsechny jeho omezeni.