Problém s validáciou formuláru
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- mbohovic
- Člen | 13
Zdravím,
- chcel by som si ďať validovať formular pre zadavanie hesla a to nasledovne
- ak je login zadaný heslo nesmie obsahovať prázdne znaky a jeho min. dĺžka je 4 znaky
- ak nie je login zadaný nech dá informáciu o tom, že heslo nebude nastavené
- Môj kód je takýto
$form = new Form();
$form->addText('login', 'Login');
/** @var TextInput $password */
$password = $form->addPassword('password', 'Heslo');
$password->addConditionOn($form['login'], Form::FILLED)
->addRule(Form::PATTERN, '%label nesmie obsahovať prázdne znaky.', '([^ ]+)')
->addRule(Form::MIN_LENGTH, 'Minimálna dĺžka hesla je %d znaky.', 4)
->endCondition()
->addConditionOn($form['login'], Form::FILLED, false)
->addRule(Form::FILLED, '%label nebude zmenené ak nie je zadaný login.');
Hláška pre počet znakov ešte prejde ale do druhej podmienky pre po endCondition sa nedostanem.
Skúšal som aj takúto možnosť
namiesto
...
->addConditionOn($form['login'], Form::FILLED, false)
...
použiť toto
...
->addConditionOn($form['login'], Form::EQUAL, '')
...
Dakujem za radu
Editoval mbohovic (12. 12. 2013 14:03)
- mbohovic
- Člen | 13
Upravil som kód nasledovne
$password->addConditionOn($form['login'], Form::FILLED)
->addRule(Form::PATTERN, '%label nesmie obsahovať prázdne znaky.', '([^ ]+)')
->addRule(Form::MIN_LENGTH, 'Minimálna dĺžka hesla je %d znaky.', 4)
->endCondition()
->addConditionOn($form['login'], Form::EQUAL, '')
->addRule(~Form::FILLED, 'Ak nie je zadaný login %label nebude zmenené.');
Editoval mbohovic (20. 12. 2013 15:07)