Jak nastavim u addRadioList set attribute

martin28
Člen | 40
+
0
-

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

Hando
Člen | 9
+
0
-

Hezký den.
A co takhle: HTML atributy

martin28
Člen | 40
+
0
-

Jasný o tom vim, ale jak nastavím u každé položky seznamu jinou hodnotu? Je to uvedení jako pole viz můj příklad nahoře. Prosím odpovidejte konkrétně a ne takto obecně odkazem na stránky kde jsem samozřejmě googlil…kdyby na to přišel sám tak jsem nepíšu

F.Vesely
Člen | 369
+
0
-

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
+
+7
-

$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]]);
martin28
Člen | 40
+
0
-

Super, děkuji a klobouček

medhi
Generous Backer | 255
+
0
-

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
+
0
-

Funguje dvojtečka a otazník a dá se to použít i na labely, nastavíš přes getItemLabelPrototype()->setAttribute(...).

medhi
Generous Backer | 255
+
0
-

Díky, to jsem předtím zkoušel, ale použil jsem ->setHtmlAttribute() (jak se píše v dokumentaci) místo ->setAttribute(). Nevím přesně v čem spočívá rozdíl, obojí je přeci HTML atribut.