Zobrazení chybových hlášek validace formulářů

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

Mám v komponentě vytvořený formulář, JS valida nemám (respektive nemám přilinkovaný potřebný soubor), mám nastaveny pravidla ->setRequired() apod.

1. Formulář vykresluji ručně, z dokumentace jsem zkopíroval kód na zobrazení chyb. Když formulář odešlu Ajaxem (prádný či nevyhovující validačním pravidlům), očekával bych zobrazení chybových hlášek dle nastavených pravidel, ale nikde se mi nic nezobrazí. Japato, nevíte?

latte pokus 1 – hlášky se nezobrazí

<ul class="errors" n:if="$form->hasErrors()">
	<li n:foreach="$form->errors as $error">{$error}</li>
</ul>

latte pokus 2 – hlášky se nezobrazí

{$form->render('errors')}

2. Formulář vykresluji v šabloně pomocí {control showForm} a při odeslání tohoto formuláře se také nikde nezobrazí chybové hlášky.

Co mi uniká, poraďte prosím, díky.

Editoval flamengo (18. 9. 2015 18:46)

flamengo
Člen | 135
+
0
-

Tak vyřešeno, přišel jsem na to juch :)
Říkal jsem si, že nikde vlastně nedefinuji, že při chybě validace má dojít k invalidaci formuláře. Napadlo mě, zda neexistuje náhodou nějaké událost formuláře podobné $form->onSuccess[] a ona existuje: $form->onError[]. Pak už jen chtělo vytvořit metodu a v té nastavit invlidaci.

protected function createComponentForm(){
	$form = new Form();
	// ....
	$form->onSuccess[] = array($this, 'processForm');
	$form->onError[] = array($this, 'errorForm');
	return $form;
}

public function errorForm(Form $form){
	if($this->presenter->isAjax()){
	    $this->redrawControl('forms');
	}
}