Error správy priamo do input

Laco
Člen | 7
+
0
-

Zdravím,
plánujem vykresľovať formuláre manuálne, prikladám na ukážku jednoduchý formulár:

{form signInForm}
	<div n:foreach="$form->errors as $error" class="card-panel alert danger">{$error}</div>

	<div class="input-field">
		<input id="name-input" n:name=name>
		<label for="name-input">Meno</label>
	</div>

	<div class="input-field">
		<input id="password-input" n:name=password>
		<label for="password-input">Heslo</label>
	</div>

	<input n:name=send class="waves-effect waves-light btn">
{/form}

V takomto stave mi chybové hlášky z JS validácie vyhodí okno a PHP validácia sa mi vypíše do <div>. Existuje nejaký jednoduchý spôsob, ako by som mohol vypísať hlášky priamo do inputu ktorému chyba patrí? Ukážka želaného výsledku:

{form signInForm}
	<div class="input-field">
		<input id="name-input" class="invalid" n:name=name>
		<label for="name-input" data-error="chybová hláška">Meno</label>
	</div>

	<div class="input-field">
		<input id="password-input" class="invalid" n:name=password>
		<label for="password-input" data-error="chybová hláška">Heslo</label>
	</div>

	<input n:name=send class="waves-effect waves-light btn">
{/form}

Nemám problém pridať tieto dáta cez n:class a n:attr. Problém je, že z $form->errors nemám ako zistiť skade chyba pochádza. To isté JS, mám vytvárať vlastnú fronEnd validáciu, alebo sa to nejakým spôsobom dá odchytiť?
Ďakujem

David Matějka
Moderator | 6445
+
+3
-

Ahoj, je nekolik zpusobu, jak se dostat k errorum inputu

{$form[name]->errors} - vraci pole chyb toho inputu
{$form[name]->error} - vraci retezec s chybami spojenych mezerou (obvykle ma input jen jeden error, takze tohle je asi nejlepsi)
{inputError name} - makro, ktere vypise chybu inputu

abys zjistil, jestli ma input error (treba pro nastaveni tridy apod), muzes pouzit

{$form[name]->hasErrors()}
rkor
Člen | 62
+
+2
-

Můžeš zkusit použít:
https://github.com/…m-validation

a v latte třeba:

<input n:name="number">
<span class=error n:ifcontent>{inputError number}</span>
Laco
Člen | 7
+
0
-

Ďakujem, toto sú presne odpovede ktoré som hľadal.