Jak validovat heslo, jen když je ve formuláři vyplněné
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- davez
- Člen | 60
Ahoj,
při registraci si uživatel volí heslo, které musí být min. 6 znaků dlouhé. Dále si potom uživatel může editovat profil, kde může své heslo změnit. V tomto formuláři nechávám input pro nové heslo prázdný a pokud ho uživatel nevyplní, tak se nové heslo nenastavuje. To mi způsobuje problém, že heslo nesplní podmínku pro minimální délku a nenechá potvrdit editaci ostatních položek.
Máte prosím nějakou radu, jak toto vyřešit?
- marioff
- Člen | 69
ja to mam tak, ze heslo sa musi vyplnit 2× rovnake..
......
$form->addPassword('password', 'Heslo')->addCondition(Form::FILLED)->addRule(Form::MIN_LENGTH, "Heslo musí mať minimalne %d znakov", 6);
$form->addPassword('password2', 'Zopakovať heslo')->addRule(Form::EQUAL, NULL, $form['password']);
......
- Pavel Kravčík
- Člen | 1196
A co přidat podmínku pro password2?
->addConditionOn($form['password'],Form::FILLED)
- iguana007
- Člen | 970
Já řeším editaci hesla takto:
$this->addPassword('password', 'Heslo')
->addCondition(Form::FILLED)
->addRule(Form::MIN_LENGTH, 'Položka %label musí obsahovat min. %d znaků', 3)
->addRule(Form::MAX_LENGTH, 'Položka %label může obsahovat max. %d znaků', 255);
$this['password']->getControlPrototype()->autocomplete('off');
$this->addPassword('password_again', 'Heslo (znovu)')
->addConditionOn($this["password"], Form::FILLED)
->addRule(Form::EQUAL, "Hesla se musí shodovat!", $this["password"])
->addRule(Form::MIN_LENGTH, 'Položka %label musí obsahovat min. %d znaků', 3)
->addRule(Form::MAX_LENGTH, 'Položka %label může obsahovat max. %d znaků', 255);