Validace prvku, ktery musi splnovat alespon jedno pravidlo

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

Ahoj,
jak napisu validaci formularoveho prvku, ktery musi byt vyplnen a zaroven splnovat alespon jedno z pravidel (telefonni cislo, nebo email).

Diky

Jan Endel
Člen | 1016
+
0
-

Něco takového?

$form->addPassword('password', 'Heslo:')
    ->setRequired('Zvolte si heslo')
    ->addRule(Form::MIN_LENGTH, 'Heslo musí mít alespoň %d znaky', 3);

prostě to sypej pod sebe.

Editoval pilec (5. 10. 2012 15:35)

dotTwelve
Člen | 167
+
0
-

Mam toto

<?php
$form->addText('input02', 'Kontaktní telefon nebo e-mail')
            ->addRule(Form::FILLED, 'Kontaktní telefon nebo e-mail musí být vyplněn')
            ->addRule(Form::EMAIL, 'Email musí být ve správném tvaru')
            ->addRule(Form::PATTERN, 'Telefonní číslo není ve správném tvaru', '^[+]?[()/0-9. -]{9,}$');
?>

ale potrebuju aby to validovalo bud jestli bude email, nebo telefon…tedka to validuje oboje zaroven…

Aurielle
Člen | 1281
+
0
-

Jedním řešením je napsat si regulár, kterým ti proleze telefonní číslo i e-mail zároveň. Druhým je to prohánět nějakou vlastní validační funkcí, která rozezná, co v políčku je, a podle toho na to pustí další validaci. A třetím je to rozdělit na dva inputy.

jansfabik
Člen | 193
+
0
-
$form->addText('contact', 'Kontaktní telefon nebo e-mail')
	->setRequired('Kontaktní telefon nebo e-mail musí být vyplněn.')
	->addCondition(~Form::EMAIL)
		->addRule(Form::PATTERN, 'Zadejte prosím svůj telefon nebo e-mail.', '\+?[()/0-9. \-]{9,}');

Editoval jansfabik (6. 10. 2012 0:00)