Jak nastavim u addRadioList set attribute
- martin28
- Člen | 40
Dobry den, nemohu prijit na to jak pridam atribut k prvku (data-test):
<input type=„radio“ id=„aaa“ name=„group_by“ value=„aaa“
data-test=„1“>
<label for=„aaa“>AAA</label>
<input type=„radio“ id=„bbb“ name=„group_by“ value=„bbb“
data-test=„2“>
<label for=„bbb“>BBB</label>
Mam neco takoveho:
$form->addRadioList(„group_by“, „Seskupovat“, [
„aaa“ ⇒ „AAA“,
„bbb“ ⇒ „BBB“,
])->setValue(„aaa“);
Dik Martin
- F.Vesely
- Člen | 369
Asi nejrychlejsi varianta bude, kdyz si predas ty dalsi atributy do sablony a pouzijes manualni vykreslovani.
Pokud bys manualni vykreslovani nechtel pouzit, tak si muzes vytvorit vlastni
formularovy prvek, ktery bude dedit od
\Nette\Forms\Controls\RadioList
a prepises si metodu
getControl()
.
Nebo kdyby ti nevadilo pouzit misto RadioListu
SelectBox
, tak tam to jde jednoduse
$form->addSelect(
'group_by',
'Seskupovat',
[
'aaa' => Html::el('option', ['data-test' => 1])->setText('AAA'),
'bbb' => Html::el('option', ['data-test' => 2])->setText('BBB'),
]
);
- David Grudl
- Nette Core | 8227
$form->addRadioList("group_by", "Seskupovat", [
"aaa" => "AAA",
"bbb" => "BBB",
])->setValue("aaa")
->setHtmlAttribute('data-test:', ['aaa' => 1, 'bbb' => 2]);
Důležitá je ta dvojtečka za 'data-test:'
F.Vesely napsal(a):
Pro select se dá místo setHtmlAttribute (který ovlivňuje <select>) použít:
$form->addSelect("group_by", "Seskupovat", $items)
->addOptionAttributes(['data-test:' => ['aaa' => 1, 'bbb' => 2]]);
- medhi
- Generous Backer | 255
Funguje to i pro labely? Konkrétně potřebuji u Radiolistu a jeho checknutého itemu nastavit určitou třídu pro label toho itemu.
Manuální vykreslování bohužel pro mě není řešení. O této dvojtečkové notaci jsem neměl tušení. Možnost využít ji i pro labely by bylo fajn.
Děkuji
- David Grudl
- Nette Core | 8227
Funguje dvojtečka a
otazník a dá se to použít i na labely, nastavíš přes
getItemLabelPrototype()->setAttribute(...)
.