Validace v závislosti na odesílacím tlačítku

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

Zdravím,

lze nějak udělat, aby se v závislosti na odesílacím tlačítku validovaly jen některé formulářové prvky?
Z dostupných informací jsem zjistil, že validaci lze pouze vypnout pomocí

$submitButton->setValidationScope(FALSE)

Zatím to dělám tak, že k prvku, u kterého chci validaci vypustit, připojím custom validátor…s tím, že tento validátor má jako parametr mimo jiné i odesílací tlačítko. A pak kontrolou

$submitButton->isSubmittedBy();

buď nechám anebo nenechám validaci proběhnout.
Ale příjde mi to krkolomné.

Díky.

Editoval mara (8. 1. 2012 18:21)

Semik
Backer | 135
+
0
-

Oživuji, stejný problém, nějaké kloudnější řešení ??

mildabre
Člen | 62
+
0
-

Nedává to moc logiku validovat různým způsobem podle odesílacího tlačítka. Z hlediska aplikace ty data jsou buďto OK nebo ne a nemělo by záležet na volbě uživatele zda chce validovat nebo ne. Pokud logika aplikace snese nižší úroveň validace, tak ji nechej sníženou, ale nedávej uživatelům volbu co se má nebo nemá validovat – o tom by Jsi měl vždy rozhodnout Ty.

Někdy je situace taková, že by se nějaké pole mělo validovat, ale v 1% případů je výjimka a je potřeba pustit ho i nevalidní – zde by to chtělo místo tvrdé validace která data nepustí dát po odeslání formuláře upozornění, že data možná nejsou zcela korektní a dát na výběr zda pokračovat nebo ne.