Checkboxlist a přidání atributů jako je třeba class nebo data atribut k jednotlivým checkboxům v listu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- David Matějka
- Moderator | 6445
pro input to jde pomoci
$form['foo']->controlPrototype->addAttributes(array(
'data-foo:' => array(
'1' => 'xxx',
'2' => 'yyy',
),
));
(vsimni si te dvojtecky za nazvem atributu)
teoreticky to jde i pro label jednotlivych checkboxu.
$form['foo']->labelPrototype->addAttributes(array(
'data-foo:' => array(
'1' => 'xxx',
'2' => 'yyy',
),
));
Problem je, ze atributy jsou sdilene s hlavnim labelem, u ktereho se pak
zobrazi neco jako data-foo:="{...}"
. Nejlepsi by asi bylo oddelit
ty labely, podobne jako to ma
radiolist.
- Matey
- Člen | 142
Ahoj, už sa pár hodín trápim s vykreslením checkboxlistu s rôznymi atribútami ale nedarí sa mi to v prípade manuálneho rendrovania. Vedel by niekto poradiť ako na to?. Ďakujem
<?php
//form
$damage = $form->addContainer('damage');
foreach ($this->damages as $key => $value) {
$chl = $damage->addCheckboxList($key, $value, $this->values);
$chl->getControlPrototype()->addAttributes(['data-damage:' => [1 => 'two']]);
}
?>
// plne funkčné
{control form}
// nefunkčné
{form form}
{foreach $form['damage']->components as $id => $container}
{foreach $container->items as $key => $label}
{input damage-$id:$key}
{/foreach}
{/foreach}
{/form}
automatika to vyrendruje správne, čiže 2 itemu v checkboxliste
data-damage="two"
manuál vyrendruje každému itemu
data-damage:="{"2":"two"}"
- Matey
- Člen | 142
Ak by niekto hľadal odpoveď tak momentálne to manuálne rendrovať nejde.
Riešenie: CheckboxList nepoužiť a zaobísť sa s Containerom a Checkboxom.