Validace formuláře – callbacky
- radas
- Člen | 225
Ahoj,
mám formulář se dvěma tlačítky „Uložit“ a „Smazat“:
$form->addSubmit('save', 'Uložit')
->onClick[] = $this->contractEditFormSaved;
$form->addSubmit('delete', 'Smazat')
->setValidationScope(NULL)
->onClick[] = $this->contractEditFormDeleted;
A dále definován callback pro validaci formuláře:
$form->onValidate[] = $this->contractEditFormValidated;
Všimněte si, že tlačítko „Smazat“ má definováno, že se nemá validovat. Tím docílím toho, že se jednak nespustí javascriptová validace (nepotřebuji kontrolovat povinné položky, když se má záznam smazat), ale přesto bych chtěl validovat na straně serveru (aplikační logika – vazba záznamu na jiné záznamy apod.).
Dá se nějak nastavit, aby se callback onValidate volal i na tlačítku, které má explicitně uvedeno setValidationScope(NULL)? Vím, že můžu validaci provést v callbacku onClick, ale rád bych od sebe oddělil validační metodu od té, která již provede nějakou akci (uložení do databáze apod.). Zkoušel jsem onInvalidClick[], ale ta se nespustí.
Ideální by byl callback onValidate na konkrétním tlačítku, ten ale Nette nepodporuje.
Díky