Jak správně přidat třídu prvkům selectboxu?

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

Ahoj,

narazili jsem na potřebu mít u option v selectboxu různé třídy podle klíčů (values). Prozatím jsme to s kolegou vyřešili tak, že jsme si „odvodili“ nový SelectBoxWClasses a předáváme mu kromě pole items i pole classes, které se pak aplikují při vytváření options.

Zajímalo by nás, jestli to nejde nějak elegantněji v „původních“ Nette\Forms. Třídy používáme pro selektivní skrývání položek pomocí jQuery (vyberu zemi ⇒ omezí se mi výběr měst).

Díky za názory

Roman Pištěk
Člen | 10
+
0
-

v jQuery nejsi omezen na atributy id/class, lze pracovat s libovolnými. Ve tvém případě můžeš použít např. pseudo-selector :selected

<script>
$('select#countries').change(function() {
	var country = $('option:selected', this).attr('value');
});
</script>
David Grudl
Nette Core | 8218
+
0
-

Povolím, aby prvky mohly být objekty Nette\Web\Html. Např.

$countries = array(
	'Select your country',
	'CZ' => Html::el('option', 'Czech Republic')->style('background: red'),
	'AU' => 'Australia',
	'CA' => 'Canada',
	'?'  => 'other',
);