Jak v nette 2.3 zavěsit handle na button

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

Ahoj chtěl jsem se zeptat vždy fungovalo toto.

$form->addButton("ok","Uložit")->onClick[] = $this->formSubmitted;

jak tedy správně na to zavěsit handle???

Děkuji

Editoval zool (8. 2. 2015 11:59)

Caine
Člen | 216
+
0
-

Pozor $this->formSubmitted funguje jen v presenterech (mozna u potomku nette object), je to Nette vymozenost, kterou PHP nativne neumi, spravne to je

$form->addButton("ok","Uložit")->onClick[] = array($this, 'formSubmitted');
zool
Člen | 144
+
0
-

To ano, ale v tom chyba není. Chyba ja tato

Cannot read an undeclared property Nette\Forms\Controls\Button::$onClick.

Kddyž jsem se díval do API
tak
tak Submit má collable () // public $onClick; a dědí od třídy button a ta už to nemá
viz
https://api.nette.org/…ton.php.html#21

Editoval zool (8. 2. 2015 12:07)

Caine
Člen | 216
+
0
-

Jo takhle, mno ale to asi nefungovalo nikdy v 2+, protoze v zadny verzi (2.0, 2.1 resp 2.2) „button“ tu property nema (viz https://api.nette.org/…ton.php.html#…)

Editoval Caine (8. 2. 2015 12:19)

zool
Člen | 144
+
0
-

jj to je možné, ale dřív jsem to řešil těmi submitty, ve starém pak těmito buttony. Tak ten button slouží jen na zavěsení ajaxového handleru??

Caine
Člen | 216
+
0
-

Button nema onClick nejspis kvuli tomu, ze IE6 neumelo spravne buttony zpracovat viz (http://vancelucas.com/…it-elements/), ale jen hadam (ping @DavidGrudl).

ali
Člen | 342
+
+2
-

Udelej to pres submit

	$form->addSubmit("ok","Ulož")
->onClick[] = callback($this,"formSubmitted");