Jak pomocí FormRenderer upravit Label u jednotlivých položek v RadioList
- tobice
- Člen | 30
Používám vlastní FormRenderer, který vychází z Bootstrap 3 rendereru (https://github.com/…Renderer.php).
Potřeboval bych, aby výstup u jedné položky v RadioListu vypadal nějak takto:
<label>
<input type="radio">
<span>Label</span>
</label>
Tj. potřeboval bych obalit popisek jedné položky spanem. Např. u checkboxu to nebyl problém:
$control->caption = Html::el("span")->setText($control->caption);
Ale u RadioListu, kde těch popisků je dynamický počet, nevím jak na to. Potřebuji to, protože používám externí šablonu formulářů, která toto vyžaduje. Určitě by se to dalo řešit nějakým JavaScriptem či úpravou stylů, ale toto by mi přišlo nejlepší.

- David Matějka
- Moderator | 6445
Jako label nemusis pouzivat jen text, muzes pouzit Html
$form->addRadioList('foo', 'Foo', ['key1' => Nette\Utils\Html::el('span')->setText('Label')])
Univerzalne pak muzes upravit renderer a nekam za tohle pridat:
if($control instanceof Controls\RadioList) {
$control->items = array_map(function($value) {
return Html::el('span')->setText($value);
}, $control->items);
}
RSS tématu
Téma zavřeno