Validace pouze jedne vybrane moznosti

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

Ahoj. Mam formular pro znovu-poslani hesla – uzivatel si muze vybrat, zda chce vlozit email nebo login… podle radiobuttonu se zobrazi prislusny input..

  • pri validaci to ale kontroluje oba inputy a ja potrebuji aby to validovalo pouze ten vybrany (zobrazeny) … jak na to ?
  • a jak take co nejelegantneji udelat aby se submit button zobrazil az po vybrani z radiobuttonu ? neco jsem zkousel, ale prislo mi to prasoidni:) btw. zpracovava se to oboji stejnou funkci – nepotrebuji ruzne submity

dikes

$form = new NAppForm;

 $radios = array(
     '1' => ' svoje přihlašovací jméno',
     '2' => ' svůj registrační email',
 );

 $form->addGroup();
 $form->addRadioList('knowledge', 'Znám: ', $radios);
 $form['knowledge']->addCondition(NForm::EQUAL, 1)
                   ->toggle('loginBox'); // toggle div #login
 $form['knowledge']->addCondition(NForm::EQUAL, 2)
                   ->toggle('emailBox'); // toggle div #email

 $form->addGroup() // login
      ->setOption('container', NHtml::el('div')->id('loginBox'));
 $form->addText('login', 'Přihlašovací jméno:', 30)
      ->addRule(NForm::FILLED, 'Zadej prosím přihlašovací jméno.');

 $form->addGroup() // email
      ->setOption('container', NHtml::el('div')->id('emailBox'));
 $form->addText('email', 'Registrační email:', 30)
      ->addRule(NForm::FILLED, 'Zadej prosím e-mail')
      ->addRule(NForm::EMAIL, 'Zadej prosím e-mail ve správném tvaru'); // ... then check email

 $form->addGroup();
 $form->addSubmit('save', 'Vytvořit heslo');
Čelo
Člen | 42
+
0
-

Pokud se nepletu, tak musíš tu podmínku dát i před ta pravidla.

<?php
$form->addText('email', 'Registrační email:', 30)
      ->addConditionOn($form['knowledge'],NForm::EQUAL,2)
      ->addRule(NForm::FILLED, 'Zadej prosím e-mail')
      ->addRule(NForm::EMAIL, 'Zadej prosím e-mail ve správném tvaru'); // ... then check email

?>
koren
Člen | 59
+
0
-

funguje skvele – diky

a btw zobrazovani submit buttonu jsem vyresil takhle:

$form['knowledge']->addCondition(NForm::EQUAL, array(1,2))
                  ->toggle('submitBox'); // toggle div #submitBox