Zmena paramatru onSubmit u formulare

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

Ahoj,

vytvarim v tovarnicce formular, ktery pouzivam v sablone pridat. V jine sablone editovat polozku bych rad pouzil ten samy formular, pouze bych rad zmenil onSubmit na jinou funkci, kterou bych zpracoval formular. Da se to nejak lehce udelat v renderEditovatFormular() nebo nekde?

Honza

srigi
Nette Blogger | 558
+
0
-

Musis to urobit v action:

public function actionAddProduct()
{
  $form = $this['productForm'];
  $form->onSubmit[] = array($this, 'addProduct');
}

public function actionEditProduct()
{
  $form = $this['productForm'];
  $form->onSubmit[] = array($this, 'editProduct');
}

V render metode je uz neskoro, vid. zivotny cyklus Presentera.

Bertram
Člen | 75
+
0
-

Ahoj,

nevíte někdo,jak lze kromě změny onSubmit[] u jednoho z těchto formulářů zrušit
jedno konkrétní validační pravidlo.

např:

$form->addText('ozn','Název:')
         ->addRule(Form::FILLED, 'Zadejte název!')
         // Toto pravidlo je při editaci trochu navíc ale nevím jak se ho zbavit,
         // ale když formulář používám ke vložení,tak tu to pravidlo musí být
         ->addRule('Transformátory::overPolozku','Tento transformátor je již evidován');
uestla
Backer | 796
+
0
-

Viz srigiův příspěvek výše – mělo by to jít skrze action; v actioně pro vložení by se to mělo dát nastavit třeba takto:

$this['myForm']['ozn']
	->addRule('Transformatory::overPolozku', 'Tento transformátor je již evidován');