Zobrazení validačních hlášek na formuláři ve snippetu

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

Nedaří se mi zobrazit validační hlášky na stránce se snippetem uvnitř kterého je formulář. Když se formulář odešle tlačítkem submit, validační chyby v podobě bubliny se nezobrazí.

{snippet editUdalost}
{ifset $editUdalost}
		{form udalostForm}

			<button class="button primary ajax" name="saveUdalost" type="submit"><i>Uložit</i></button>
		{/form}
{/ifset}
{/snippet}

Validace:

	protected function createComponentUdalostForm()
	{
				$form = new Form;
				$form->addText('nazev', 'Název');
				$form->addDate('datumod', 'Datum od');
				$form->addDate('datumdo', 'Datum do');
				$form->addText('casod', 'Čas od');
				$form->addText('casdo', 'Čas do');
				$form->addCheckbox('jecelodenni', 'Celodenní')->setAttribute("id", "jecelodenni")->setAttribute("onclick", "toggleCelodenni()");
				$form->addSubmit('saveUdalost');
				$form->addSubmit('cancelUdalost');
				$form->onSuccess[] = [$this, 'editUdalostSucceeded'];
        $form->onValidate[] = array($this, 'validateUdalostForm');

				return $form;
		}


public function validateUdalostForm($form)
{
			if ($form['cancelUdalost']->isSubmittedBy()) {
                $this->template->editUdalost = null;
				}

			if ($form['saveUdalost']->isSubmittedBy()) {
                $isValid = true;

                foreach ($form->getControls() as $control) {
                       if (!$control->getRules()->validate()) {
                               $isValid = false;
                       }
                }

                if ($isValid == false) {
                        $this->template->editUdalost = 1;
                }
				}

        $this->redrawControl("editUdalost");
}
JZechy
Člen | 161
+
0
-

Dle téhle ukázky je taky ani nijak nevypisuješ. Viz. manuální vykreslení, všimni si toho ul li.

Navíc, pokud na jedno tlačítko nechceš validovat formulář, stačí mu dát setValidationScope(FALSE) a nemusíš ručně vyvolávat validaci pak.