Reset formuláře při odesílání ajaxem
- besir
- Člen | 170
Ahoj,
nevíte někdo jak vymazat data z ajaxově odeslaného formuláře? Kolega mi
nechce dovolit vymazat jej javascriptem. Zkoušel jsem toto v metode
obsluhujici formular:
public function saveUser(\Nette\Application\UI\Form $form)
{
try
{
$values = $form->getValues();
if ($this->getModel()->addNewUser($values->name, $values->account, $values->role) === FALSE)
{
throw new \Nette\Application\BadRequestException('Save user data failed!');
}
$this->getPresenter()->flashMessage('User has been saved!');
$form->setDefaults(array(
'name' => NULL,
'account' => NULL,
'role' => NULL
));
$this->getPresenter()->invalidateControl('users');
$this->invalidateControl('addUserForm');
if ($this->getPresenter()->isAjax() === FALSE)
{
$this->getPresenter()->redirect('this');
}
}
catch (\Nette\Application\BadRequestException $exception)
{
$form->addError($exception->getMessage());
$this->formErrorHandler($form);
}
}
Ale to nepremava :-/
Editoval besir (16. 10. 2012 0:12)
- Vojtěch Dobeš
- Gold Partner | 1316
Vážně bych si s kolegou promluvil :). Pokud je formulář odesílán
ajaxově, proč by se měl server starat o promázání pár políček? To je
podle mě naprosto vhodné řešit u klienta. Jen bych si dal pozor, aby se
mazalo až po úspěšném odeslání – pokud by se formulář vymazal hned a
následně jsem se dozvěděl, že odeslání nebylo úspěšné, asi bych se
velmi… rozčílil :). Zavání mi to tlačítkem
<input type=reset>
.
- besir
- Člen | 170
No jenže né s každým se dá uplně snadno mluvit. Já to ve svém prokektu také řešil právě u klienta. Chtěl jsme znát další názor, abych věděl zda je moje tvrzení opravdu nesmysl, či nikoli. Vojtěchu Díky.
@Grelek, také děkuji za názor. Tak je to právě řešeno teď :-) Ikdyž koukam že sem příklad nějak zvláštně zkopíroval, ale to je pro otázku asi jedno :-)
Editoval besir (16. 10. 2012 0:14)