AddConditionOn v kontejneru, nedefinová proměnná form
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- lukendo
- Člen | 96
Ahoj, mám formulář s kontejner a jedním checkboxem, který chci
kontrolovat v kontejneru zda je hodnota ve formuláři email. Nicméně
kontejner mi nebere proměnou $form
, tudíž jsem pochopil že tam
musím nějak předat rodiče toho kontejneru že? Jak tedy lze předat
kontejneru prvek s formuláře? A ještě bych se chtěl otázat, když mám
na nějaké prvky setRequired
a zároveň je možnost nechat
schované přes toggle, tak jak při odeslání formu ty skryté prvke
ignorovat? Jde to nějak, nebo by to mělo jít cestou contejnerů? Díky.
$form = $this->factory->create();
$form->addCheckbox('mail', 'Send mails');
$clients = $form->addDynamic('clients', function (Container $client) {
$client->addSubmit('remove', 'Remove clients')->setAttribute('class', 'ui grey button')->addRemoveOnClick();
$client->addText('mail')
->setAttribute('placeholder', 'mail adrress')
->addConditionOn($form['mail'], Form::EQUAL, FALSE)
->addRule($form::EMAIL, 'Set email');
}, 1);
- CZechBoY
- Člen | 3608
Protože v anonymní funkci nemáš dostupné proměnné „z venku“. Použij use:
$form = $this->factory->create();
$form->addCheckbox('mail', 'Send mails');
$clients = $form->addDynamic('clients', function (Container $client) use ($form) {
$client->addSubmit('remove', 'Remove clients')->setAttribute('class', 'ui grey button')->addRemoveOnClick();
$client->addText('mail')
->setAttribute('placeholder', 'mail adrress')
->addConditionOn($form['mail'], Form::EQUAL, FALSE)
->addRule($form::EMAIL, 'Set email');
}, 1);
Editoval CZechBoY (21. 9. 2016 21:43)