Zobrazení chyby přímo u formulářového pole

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

Jak můžu obecně nechat zobrazovat validační chyby přímo u formulářvého prvku, či alespoň focusnout nebo nějak highlightnout ten prvek, ve kterém je chyba?

Díky

David Matějka
Moderator | 6445
+
+1
-

U automatickeho renderovani se chyby ukazuji u prislusnych inputu. U manualniho pouzij prislusne metody https://api.nette.org/…Control.html#…, treba tedy

{if $form['foo']->hasErrors()}
{$form['foo']->error}
{/if}

nebo muzes i pouzit makro inputError {inputError foo}

j.salak
Člen | 42
+
0
-

David Matějka napsal(a):

U automatickeho renderovani se chyby ukazuji u prislusnych inputu. U manualniho pouzij prislusne metody https://api.nette.org/…Control.html#…, treba tedy

{if $form['foo']->hasErrors()}
{$form['foo']->error}
{/if}

nebo muzes i pouzit makro inputError {inputError foo}

Ouu, to nemuzu delat takhle rucne, mam v aplikaci asi 50 formulářů docela složitejch :)

Zkusim to udělat přes JS, jen potřebuju dostat do seznamu erroru name nebo ID inputu ke kterymu malezi a pak ho v DOM presunu

David Matějka
Moderator | 6445
+
0
-

Jestli ti jde o client side, tak hledej „live validation“

j.salak
Člen | 42
+
0
-

David Matějka napsal(a):

Jestli ti jde o client side, tak hledej „live validation“

Tak napůl :) nechci psát 2× validační pravidla, chci je mít napsaný je v Nette Formu ale chci aby se zobrazovali u fieldů, protože když je formulář složitější, tak klient problematicky hledá kde ten error je.

CZechBoY
Člen | 3608
+
0
-

Pro kazdy policko nette vyplnuju data-nette-rules tak zas tak slozity to neni.

Oli
Člen | 1215
+
0
-

Pokud tu chybu zachytíš až po odeslání, tak pro konkrétní input se nechá nastavit jednoduše:

$form['name']->addError($this->translator->translate('wrongName'));