Další atributy u tagu OPTION

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Taco
Člen | 50
+
0
-

Mám formulář se Selectboxem, a potřeboval bych pro následnou spolupráci s Javascriptem přidat do jednotlivých optionů ještě další informace. Výsledek si představuji nějak takto:

<select name="foo">
  <option value="1">Une</option>
  <option value="2" data-lang="fr">Deux</option>
  <option value="3" data-lang="fr">Trois</option>
  <option value="4" data-lang="en">Hi</option>
</select>

Lze to nějak?

Díky za odpověď.

David Matějka
Moderator | 6445
+
-2
-

zkus:

$lang = array(
	2 => 'fr',
	3 => 'fr',
	4 => 'en',
);
$input->getControlPrototype()->addAttributes(array('data-lang:' => $lang)); //ta dvojtecka je dulezita
Taco
Člen | 50
+
0
-

Doufám, že jsem to udělal správně, protože mi to nefunguje.

David Matějka
Moderator | 6445
+
0
-

Jakou mas verzi nette?

Taco
Člen | 50
+
0
-

cca poslední 2.2.2 (released on 2014–06–26)

Taco
Člen | 50
+
0
-

Ha, napchal se mi jako atribut do tagu SELECT:

<select name="foo" data-lang:='{"2":"fr","3":"fr","4":"en"}' >
Filip Procházka
Moderator | 4668
+
+3
-

Něco takového by mělo fungovat, možná to půjde ještě zkrátit.

$option = function ($val, $lang = NULL) {
	return Html::el('option', ['value' => $val])
		->addAttributes($lang ? ['data-lang' => $lang] : []);
};

$select->setItems([
    1 => $option(1)->setText('Une'),
    2 => $option(2, 'fr')->setText('Deux'),
    3 => $option(3, 'fr')->setText('Trois'),
    4 => $option(4, 'en')->setText('Hi'),
]);
David Matějka
Moderator | 6445
+
0
-

Ajo, uz to vidim.. tenhle zapis jde jen u radiolistu. Ale mozna by se pro to hodila podpora, ze by tam bylo neco jako OptionPrototype :)

David Matějka
Moderator | 6445
+
0
-

Neni potreba uvadet nazev elementu ani value, nette to doplni.
Co takhle tam pridat optionProtype (html objekt), jehoz atributy by se mergly s temito ?

Taco
Člen | 50
+
0
-

Toto funguje dobře, dík.