Změna atributu disabled na základě addConditionOn()
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- visitor
- Člen | 22
Potřeboval bych při vypsání formuláře mít checkbox disabled a při vybrání určité položky v selectboxu tento checkbox enablovat. Dá se to bez pomocí JS? Kde by to mohlo vypadat cca takto:
<?php
$form->addSelect('id_typ', 'Kategorie článku:', array('' => 'Vyber kategorii', 1 => 'Aktuality', 2 => 'Připravujeme', 3 => 'Proběhlo'))
->getControlPrototype()->onchange('enablujChB(this.value);');
?>
Já bych raději nechtěl zanášet další vazby na JS, u kterých bych musel hlídat případné změny.
<?php
$form->addSelect('id_typ', 'Kategorie článku:', array('' => 'Vyber kategorii', 1 => 'Aktuality', 2 => 'Připravujeme', 3 => 'Proběhlo'))
->skipFirst()
->addRule(Form::FILLED, 'Je třeba vybrat kategorii.');
$form->addCheckbox('prihlaseni', 'Povolit přihlášení k akci:')
->setDisabled()
->addConditionOn($form['id_typ'], Form::EQUAL, 2)
->setDisabled(FALSE);
?>
- David Grudl
- Nette Core | 8228
V tuto chvíli to řešit nejde, ale je v plánu něco takového (za použití vlastního JS) umožnit.