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
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
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
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',
);