více addConditionOn na jedno textové pole

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

ahoj, hledám způsob jak na jedno textové pole dát více addConditionOn. Mám textové pole, které má pravidlo ->addRule(Form::MIN_LENGTH, ‚Zadejte alespoň %d znaky‘, 3); . Chci ale, aby se spustilo pouze, pokud není vyplněno ani jedno z dalších 4 textových polí. Pro představu:

		$text = $form->addText('text', '');
		$pracovnik = $form->addText('pracovnik', 'Pracovník:');
		$role = $form->addText('role', 'Role:');
		$proces = $form->addText('proces', 'Proces:');
		$vv = $form->addText('vv', 'Vstup/Výstup');

Vždy se mi pouze podaří ošetřit jen jedno pole formou

$text->addConditionOn($form['pracovnik'], ~Form::FILLED)
	->addRule(Form::MIN_LENGTH, 'Zadejte alespoň %d znaky', 3);

Neví prosím někdo, jak aplikovat addConditionOn na všechna čtyři textová pole?

Ondřej Mirtes
Člen | 1536
+
0
-

Nestačilo by nepoužívat fluent interface? tzn. nesázet za addRule další addConditionOn, ale vytáhnout si na novém řádku to pole:

$form['pracovnik']->addConditionOn(....

$form['pracovnik']->addConditionOn(....

$form['pracovnik']->addConditionOn(....
_Martin_
Generous Backer | 679
+
0
-

sandi napsal(a):

… Chci ale, aby se spustilo pouze, pokud není vyplněno ani jedno z dalších 4 textových polí. …

Nezkoušel jsem, ale věřím, že to bude fungovat:

$text->addConditionOn($form['pracovnik'], ~Form::FILLED)
        ->addConditionOn($form['role'], ~Form::FILLED)
            ->addConditionOn($form['proces'], ~Form::FILLED)
                ->addConditionOn($form['vv'], ~Form::FILLED)
                    ->addRule(Form::MIN_LENGTH, 'Zadejte alespoň %d znaky', 3);