Pravidlo na shodu dvou formularovych poli pro heslo

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

Ahoj, zajima me, jak kontrolovat shodu dvou hesel ve formulari.

Mam toto

$form->addPassword('password_hash', 'Password')
             ->setRequired('Please enter password.');

$form->addPassword('password_confirm', 'Password again:')
     ->addRule(Form::EQUAL, 'Passwords do not match.', /* Co vlozit sem? */);

A zajima me, co se mam vlozit jako treti argument te funkci addRule. Jestli odkaz na formularovy prvek, nebo jeho hodnotu?

Diky vsem za rady.

voda
Člen | 561
+
+1
-

Je to v dokumentaci formulářů:

$form->addPassword('passwordVerify', 'Heslo pro kontrolu:')
    ->setRequired('Zadejte prosím heslo ještě jednou pro kontrolu')
    ->addRule(Form::EQUAL, 'Hesla se neshodují', $form['password']);

Editoval voda (15. 9. 2014 15:09)

jiri.pudil
Nette Blogger | 1032
+
0
-

Jestli odkaz na formularovy prvek, nebo jeho hodnotu?

Měly by fungovat obě možnosti:

$form->addPassword('password_confirm', 'Password again:')
     ->addRule(Form::EQUAL, 'Passwords do not match.', $form['password_hash']);

// ===

$form->addPassword('password_confirm', 'Password again:')
     ->addRule(Form::EQUAL, 'Passwords do not match.', $form['password_hash']->value);
voda
Člen | 561
+
+1
-

@jiri.pudil: u druhého řešení (s ->value) nebude fungovat js validace