Více větví kontrol na pole ve formuláři

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

Zdravím, mám takový dotaz, jestli je možné na formulářovém prvku realizovat 2 nezávislé větve kontrol. Příklad:

 $form->addText('last_name', 'Přijmení:')
// 1) Pokud bude hodnota jiného pole větší než 1, příjmení bude povinné.
            ->addConditionOn($form['jine_pole'], Form::RANGE, array(1, null))
                ->setRequired('Příjmení musí být vyplněno.')
// 2) Vždy potřebuji kontrolvat validitu znaků v daných polích:
            ->addCondition(Form::FILLED)
                ->addRule(Form::MIN_LENGTH, 'Příjmení musí mít alespoň %d znaky', 2)
                ->addRule(Form::MAX_LENGTH, 'Příjmení nemůže mít více jak %d znaků', 20)
                ->addRule(Form::PATTERN, 'Obsahuje nepovolené znaky.', '[a-zA-ZáčďéěíňóřšťůúýžÁČĎÉĚÍŇÓŘŠŤŮÚÝŽ]+[ \-]?');

Je tedy možné definovat tyto 2 kontroly pro 1 prvek? Nebo musím použít Vlastní validační funkci nad celým formulářem?

Pavel Kravčík
Člen | 1205
+
+3
-
->endCondition()
Croc
Člen | 270
+
0
-

super, díky… Tohle jsem nikde nenašel…

Šaman
Člen | 2668
+
0
-

Aha, to jsem taky neznal. Ale šlo udělat:

<?php
$lastNameInput = $form->addText('last_name', 'Přijmení:');

// 1) Pokud bude hodnota jiného pole větší než 1, příjmení bude povinné.
$lastNameInput->addConditionOn($form['jine_pole'], Form::RANGE, array(1, null))
                ->setRequired('Příjmení musí být vyplněno.');

// 2) Vždy potřebuji kontrolvat validitu znaků v daných polích:
$lastNameInput->addCondition(Form::FILLED)
                ->addRule(Form::MIN_LENGTH, 'Příjmení musí mít alespoň %d znaky', 2)
                ->addRule(Form::MAX_LENGTH, 'Příjmení nemůže mít více jak %d znaků', 20)
                ->addRule(Form::PATTERN, 'Obsahuje nepovolené znaky.', '[a-zA-ZáčďéěíňóřšťůúýžÁČĎÉĚÍŇÓŘŠŤŮÚÝŽ]+[ \-]?');
?>