addCondition a addConditionOn
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Jiří Nápravník
- Člen | 710
Potřebuji udělat, kdyžt někdo zadá hodnotu, aby odpovídala patternu. Zároveň pokud je zatrhnutý checkbox nějaké jiného inputu, aby byla položka povinná? Jak na to? Jde to nějak přímo z podmínek ve formulářích nebo musím napsat validaci „ručně“?
Tohle co mám, tak je jen v případě, že je zatrhnuto. Ale ten poslední potřebuji za každých podmínek. Když dám prvně to druhé pravidlo, tak se zase vůbec nebere ta addConditionOn…
$video->addText('videoLength', 'Délka videa')
->addConditionOn($form['article-published'], Form::EQUAL, TRUE)
->setRequired()
->addCondition(Form::FILLED)
->addRule(Form::PATTERN, 'Délka musí být zadána ve formátu minuty:sekundy', '[0-9]+:[0-9]{2}');
- jiri.pudil
- Nette Blogger | 1032
Imo musíš obě podmínky navěsit zvlášť od rootu (komponenty), pokud je
chceš mít nezávislé. Metoda addCondition(On)
totiž vždycky vytváří
a vrací novou condition branch:
$videoLength = $video->addText('videoLength', 'Délka videa');
$videoLength->addConditionOn($form['article-published'], Form::EQUAL, TRUE)
->setRequired();
$videoLength->addCondition(Form::FILLED)
->addRule(Form::PATTERN, 'Délka musí být zadána ve formátu minuty:sekundy', '[0-9]+:[0-9]{2}');
- David Matějka
- Moderator | 6445
jak pise @jiri.pudil .. druhou moznosti je pouzit endCondition:
$video->addText('videoLength', 'Délka videa')
->addConditionOn($form['article-published'], Form::EQUAL, TRUE)
->setRequired()
->endCondition()
->addCondition(Form::FILLED)
->addRule(Form::PATTERN, 'Délka musí být zadána ve formátu minuty:sekundy', '[0-9]+:[0-9]{2}');