Reset formuláře při odesílání ajaxem

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

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)

Grelek
Člen | 233
+
0
-

Jenom tipuji, ale zkusil bych něco s funkcí pro nastavování defaultních hodnot formuláře.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

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
+
0
-

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)