Povinný prvek formuláře v závislosti na vybrané hodnotě selectu
- jedlicka
- Člen | 70
Ahoj,
mám dva prvky (select a textarea) ve formuláři:
<?php
$states = array('0' => 'Schváleno', '1' => 'Odmítnuto');
$form = new Form;
$form->addSelect('state', 'Stav:', $states)->setAttribute('class', 'form-control');
$form->addTextArea('description', 'Popis:')->setAttribute('class', 'form-control');
$form->addSubmit('change', 'Změnit')->setAttribute('class', 'btn btn-success');
$form->onSuccess[] = [$this, 'changeState'];
?>
A potřeboval bych, aby bylo textové pole povinné, pouze při konkrétní vybrané hodnotě selectu.
- Příklad
- Když v selectu
$form['state']
vyberu hodnotu 0 (Schváleno) ⇒ popis do pole$form['description']
není povinný a je možné formulář odeslat. - Když v selectu
$form['state']
vyberu hodnotu 1 (Odmítnuto) ⇒ popis do pole$form['description']
je povinný a formulář lze odeslat až po vyplnění$form['description']
.
Jak na to?
Díky moc.
Martin
- Petr Parolek
- Člen | 455
z docky
<?php
$form->addCheckbox('newsletters', 'zasílejte mi newslettery');
$form->addEmail('email', 'E-mail:')
// pokud je checkbox zaškrtnut
->addConditionOn($form['newsletters'], Form::EQUAL, true)
// pak vyžaduj e-mail
->setRequired('Zadejte e-mailovou adresu');
?>