při addError v onClick se volá i onSuccess
- snake.aas
- Člen | 25
nette: 2.0.12 (ze sandboxu)
php: 5.4.15
Mějme takovouhle definici komponenty
Když odešlu formulář, tak jako odpověď dostanu
„button clicked event fired“ (26)
„form success event fired“ (24)
This is a error
Přitom bych očekával, že když v handleru onClick přidám chybu, tak se mi už nevolá handler onSuccess (protože formulář v tomhle stavu už není success)
Neuniká mi nějaká feature, proč to takhle je?
Řeším to, protože mám save a cancel tlačítko a při odeslání pomocí save kontroluju správnost a v onSuccess už jen přesměruju, takhle to ale přesměruje i když je formulář špatně vyplněný
- snake.aas
- Člen | 25
Když budu v onClick například vkládat uživatele, který už je
zavedený (unique index).
Tak namísto toho abych se pokusil vložit uživatele a zachytil vyjímku,
kterou nějak zpracuju, se budu muset dotazovat jestli takový uživatel je a
pak ho v onClick vložit. Což je zbytečný dotaz navíc.
Zatím to obcházím tak, že v success extra kontroluju $form->isValid(), ale to se mi moc nelíbí.
- Vojtěch Dobeš
- Gold Partner | 1316
Co takhle použít jen onSuccess[]
a cancelovací tlačítko
nahradit třeba odkazem.
Nicméně je pravda, že jde o dobrý příklad, kdy by se hodilo přerušení řetězce událostí.
Editoval vojtech.dobes (11. 9. 2013 12:08)
- snake.aas
- Člen | 25
Milo napsal(a):
V
onValidate
je podle mě moc brzo. Pokud by se jen kontrolovale neexistence uživatele SELECTem, tak než program dojde konClick
aneboonSuccess
, někdo může uživatele vytvořit.Formuláře, které provádí něco s modelem a mají více tlačítek, řeším takhle:
No a pokud používám továrničku na formulář podle dg tak přesměrovávat v továrničce nechci kvůli znovupoužitelnosti.
Takhle bych si navázal dvě události onSuccess, které se imho provedou
v pořadí v jakém jsem je navázal (první bude „továrničkový“
success, pak v createComponent).
Ale stejně se provedou obě, takže i tak musím ve druhé ověřovat
validitu, ni?