vytvorenie vlastneho rule pre formular

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

v dokumentacii(https://doc.nette.org/cs/forms) pre vytvorenie vlastneho validacneho pravidla som nasiel priklad, kde bola vytvorena vlastna funkcia, ale je tam poznamka : // poznámka: toto je skutečná funkce, nikoliv metoda v presenteru – ako teda vytvorim takuto funkciu , ked formular vytvaram klasicky v presenteri, pripadne kde mam definovat tuto funkciu?

David Matějka
Moderator | 6445
+
0
-

Pokud nepotrebujes JS validaci, tak tam muzes predat jakykoliv platny callback, tedy treba [$this, 'validateFoo'] nebo treba anonymni funkci. Pokud chces mit JS validaci, musi to byt bud obycejna funkce, nebo staticka metoda. A pak dle pravidel udelas jeji prepis pro JS

Matej123
Člen | 150
+
0
-

chcem to aplikovat pri registracii, teda ak pouzivatel zada email, ktory uz ma nejaky pouzivatel registrovany, tak sa vypise chybova hlaska z rule. ako sa to bude spravat ked to bude bez JS?

David Matějka
Moderator | 6445
+
0
-
->addRule(function ($control) {
	return $this->userModel->isEmailAvailable($control->value);
}, 'E-mail neni dostupny');

(tu metodu isEmailAvailable musis samozrejme implementovat sam, vrati jen true/false)

Mysteria
Člen | 797
+
0
-

Bez JS se to bude chovat tak, že i se zabraným emailem se ti odešle formulář a po překreslí stránky se ti někam vykreslí chybová hláška (a uživatele to nezaregistruje). Prostě tam bude chybět ta JS část, která by ti rovnou při odeslání řekla, že tenhle email je již použit a zabránila odeslání formuláře.

Kdyby jsi to chtěl mít i na straně JS, tak řešením jsou AJAXové validace podle tohoto návodu: https://www.youtube.com/watch?…

Matej123
Člen | 150
+
0
-

jasne, dakujem, a este mam jednu otazku: da sa nejakyms sposobom nastavit tej chybovej hlaske, ktora sa definuje pri addRule aby sa vypisala cervenou farbou? formular vypisujem takto : {control registerForm}

Ondřej Kubíček
Člen | 494
+
0
-

defaultně se ti errory vypisují v ul seznamu s třídou error
stačí si to jen nastylovat

Editoval Ondřej Kubíček (8. 9. 2015 19:10)