Zmena hodnout inputu pri nespravnej validacii

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

Helov
potreboval by som poradit s tym ako vymazat/zmenit hodnotu inputu vo formulary ktory som prave submitol ale nepresiel validaciou, stalme mi to dava tu hodnotu ktoru som tam zadal 1× a nepomaha ani
setDefaultValue a ani setValue

dik

vvoody
Člen | 910
+
0
-

bude asi treba redirectnut na ten formular aby z url zmizol parameter ‚do‘, skusim nieco z hlavy:

$form->onValidate[] = callback($this,'redirectIfNotValid');
//  predpokladam ze tento hendler sa bude volat az po odoslani formu

a hendler:

public function redirectIfNotValid($form){
	if(!$form->isValid())
		$form->presenter->redirect('blabla');
}
22
Člen | 1478
+
0
-

…ti nestačí?

vvoody
Člen | 910
+
0
-

veru :D tak potom onError

Balvan
Člen | 30
+
0
-

Takze dik za rady ale

  1. ked dam redirect stratim aj hodnoty z formulara ktore chcem zachovat a naozaj sa mi nechce riesit preto session ulozisko alebo neico podobne ze co bolo predtym vyplne v inchy fieldoch
  2. onError tak isto nepomoze
  3. reidrectnut ma dalsi neziaduci efekt a to je ten ze mi nehodi k fieldu form error

ja skor potrebujem riesenie ked je v url do :-)

ak by niekto nieco sem z riesenim DIK

Editoval Balvan (3. 7. 2012 16:36)

22
Člen | 1478
+
0
-

2. onError tak isto nepomoze

A to jako proč? Tenhle callback se vykoná, když formulář neprojde validací, takže to je snad přesně tvůj případ nebo pošli kod.

vvoody
Člen | 910
+
0
-

Balvan: setValue urcite funguje len ho volas asi na nespravnom mieste, skus takto:

$this->onError[] = function ($form){
	$form['name']->setValue('');
};
Balvan
Člen | 30
+
0
-

Dakujem vyriesil som to trosku inak bez nutnosti ohynat nette :-)