Formulář – podmíněná validace
- Jiří Nápravník
- Člen | 710
Pokud vytvářím fomrulář a chci u něj nastavit podmíněnou validaci. Je možné přichytit to k elementu, který se odkazuje na elemnt, který bude déle.
Lépe asi napoví kód:
$form->addTextarea('aboutGame', 'Popis:')
->addConditionOn($form['published'], Form::EQUAL, TRUE)
->addRule(Form::REQUIRED);
$form->addCheckbox('published', 'Publikovat');
pokud udělám toto, tak na mě vyskočí, že komponenta published neexistuje. a musím vložit tu podmíněnou validaci až na za tu část kdy je přidaný ten publisehd. Přijde mi to na jednu stranu logické, na stranu druhou v kódu taky kolikrát volám jiné komponenty a tvoří se až později. Uniká mi něco?
Potom bych měl ještě jednu věc k těmhle podmíněným validacím. V případě povinných inputů přidávám k labelu hvězdičku. Je nějak řešeno, pokud splním podmínku, tak aby se u těch daných elementů nastavil zase label jako required. Jelikož pak to vypadá tak, že sice vyskočí alert při valdiaci, ale label označený stejně není.
- David Matějka
- Moderator | 6445
ten control musi existovat, proste udelej:
$aboutGame = $form->addTextarea('aboutGame', 'Popis:');
$form->addCheckbox('published', 'Publikovat');
$aboutGame->addConditionOn($form['published'], Form::EQUAL, TRUE)
->addRule(Form::REQUIRED);
na stranu druhou v kódu taky kolikrát volám jiné komponenty a tvoří se až později
jako myslis v presenteru $this['foo']
? tenhle kod prave tu
komponentu vytvori…
- Jiří Nápravník
- Člen | 710
Díky za reakci. Ano tak to řeším teď, ale myslel, jsem nejde nějak lépe to řešit, že bych měl pěkně každý element oddělen a nemusel to pak „dodělávat zpětne“.
JJ, chápu, že právě $this[‚foo‘] tu komponentu vytvoří, myslel jsem však jestli to nějak vnitřně není řešeno ve Formu, že se tam takhle taky vytvoří a jde to tedy definovat i „předčasně“.