Validace formuláře – 2 prvky v jedné zprávě?

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

Zdravím, chtěl by se zeptat, zda jde vyřešit validace 2 prvků formuláře v jedné zprávě. Například mám prvky „přihlašovací jméno“ a „heslo“. A teď když obě nevyplním, aby to hodilo jen jednu zprávu, např. jen „Nevyplnil jste požadované údaje.“, místo toho aby to vyhodilo „Chybné heslo“ a „Chybné jméno“. Druhá otázka je, jestli jde tyto zprávy ve validaci nějak rozlišit. Myslím tím jestli do slotu $flash->type můžu dát něco svého, např. badDay :-) Thx!

Mikulas Dite
Člen | 756
+
0
-

RTFM ; )

Ok, to první nejde (protože teď to funguje líp), resp. nejde úplně čistě. Můžeš si napsat vlastní validaci v metodě onSuccess:

function onSuccess(Form $form) {
	if (!$form['password']->value && !$form['username']->value)
		$form->addError('chyba čéče');
}

Classu flashmessage ovlivníš druhým argumentem $presenter->flashMessage('zpráva', 'success').

diablos
Člen | 36
+
0
-

Thx za odpověď!

Filip Procházka
Moderator | 4668
+
0
-

Jenom bych doplnil, že definování metody onSuccess ve třídě poděděné od Nette\Forms\Form (takže i UI\Form) rozbije chování událostí a může vést k neočekávaným výsledkům.

Protože už jsem viděl, že někteří jsou toho schopní, takže raději upozorním…