Jak funguje onInvalidClick v \Nette\Application?

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

Zdravím,
mám hotovou základní strukturu webu podle skeletonu. Na homepage je primitivní formulář a řeším teď základní principy práce s formulářem v rámci MVP (\Nette\Application). V HomepagePresenter.php jsem si udělal metodu vytvářející form (nevolá akorát konstruktor samostatné komponenty v /app/components, ale tvoří jej natvrdo).

Chápu princip odeslání formu přes onClick s navázáním na metodu obslužného handleru. Nepochopil jsem už, jak použít onInvalidClick. Dává se stejně jako onClick k addSubmit s uvedením handleru obsluhujícího nesprávně vyplněný nebo neúplný formulář?

Druhá drobnost, kterou sice chápu, ale netušim kam ji v rámci presenteru dát, je nastavení defaultních hodnot – viz. kód.

<?php
if (!$form->isSubmitted()) {
        // první zobrazení, nastavíme výchozí hodnoty
        $form->setDefaults($defaults);
		}
?>

Nikde jsem nenašel polopatě vysvětlený tyhle základní věci, tak se s tim mořim nehorázně dlouho :) Začátky jsou docela krutý a zasekávám se většinou na pytlovinách.

Díky,
Standa

Majkl578
Moderator | 1364
+
0
-

Je to prosím Nette\Application, bez úvodního lomítka.

V MVP se komponenty řeší pomocí továrniček, popsané je to v dokumentaci AppFormu.
Default hodnoty můžeš nastavit třeba už v továrničce, pokud je formulář odeslán, Nette je automaticky nenastaví (link).

onInvalidClick se zavolá při odeslaném nevalidním formuláři.

Editoval Majkl578 (31. 3. 2010 1:33)