Ktery input vyvolal error pri odeslani spatne vyplnenho formulare
- matmat
- Člen | 3
Zdravicko ve spolek,
mejme napr. nasledujici kod v presenteru:
$form = new Form;
$form->addText('firstname', '*Jmeno:')
->setRequired('Zadej sve jmeno.');
$form->addText('lastname', '*Prijmeni:')
->setRequired('Zadej sve prijmeni.');
V pripade, ze mam vypnutou validaci pomoci JS, validace tedy probiha na serveru. Vyplnime pouze jmeno a odesleme formular, zobrazi se chybova hlaska. Jakou cestou mohu zjistit, ktery input tuto chybu vyvolal (ze ji vyvolal input pro lastname)? Tuto informaci bych pouzil napr.: k nastylovani jineho prvku v sablone a nebo obalujiciho elementu.
Jak by jste podobnou situaci resili?
Diky a nette zdar :)
- matmat
- Člen | 3
Diky za reakci. Vedel jsem, ze je mozne volat tuto funkciá nad formularem, ale nejak me nenaladlo, ze i nad prvkem :)
Ted to ma v sablone (respektive v komponente form) nejak takto:
<div class="{if $form->getComponent('lastname')->hasErrors()}error{/if}">
Je nejaka moznost, jak to udelat vice „latte“ (omezit PHP)? Neco jako, kdyz vykresluji label ci input:
{label lastname /}
{input lastname}
Editoval matmat (17. 1. 2014 9:35)
- jiri.pudil
- Nette Blogger | 1032
Můžeš to zjednodušit použitím n:class:
<div n:class="$form['lastname']->errors ? error">