Jak ovlivnit přesměrování po nevalidním odeslání formuláře

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

Ahoj, pokud odešlu nevalidní formulář, nenačte se stránka na pozici (umístění), kde je chybová hláška, ale musím rolovat, protože je formulář i chybová hláška dole na stránce.
Nevíte, zda jde toto chování nějak ovlivnit? U validního odeslání, lze do redirect přidat #kotva, ale co a jak se děje po nevalidním odeslání netuším.

jtousek
Člen | 951
+
0
-

Zkus to #kotva přidat do <form action="...#kotva">. Mělo by to jít nějak přes $form->getElementPrototype()->action.

MartinitCZ
Člen | 580
+
0
-

Do constructoru formu (tam kde máš $this->addSubmit.....) přidej

$this->action .= "#kotva";
vvoody
Člen | 910
+
0
-

Ale pozor ak ide o Nette\Application\UI\Form, on si sam nastavuje action pri naviazani na rodicovsku komponentu (presenter), takze treba action upravit az po jeho vytvoreni:

	public function createComponentTestForm(){
		$form = new \Nette\Application\UI\Form;
		$form->addSubmit('abc', 'xyz');

//		$form->action .= '#kotva';
//		tu to nema vyznam, action bude aj tak prepisany

		return $form;
	}

	public function renderDefault()
	{
		$this['testForm']->action .="#kotva";
	}
Bertram
Člen | 75
+
0
-

Děkuji všem, funguje to. Použil jsem postup od vvoody.