submit button a onclick metoda

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

ahoj,

jaký je přesně rozdíl mezi

 $form = new AppForm($this, $name);

        $form->addSubmit("submit", "Odeslat")
         ->onClick[] = array($this, "formSubmitted");

a

        $form->addSubmit("submit", "Odeslat");
        $form->onSubmit[] = array($this, 'formSubmitted');

?

Používám doplněk DependencySelectbox a potřebuji použít první variantu, protože jinak se mi nemění hodnoty.

Jenže po odeslání dostanu vyjímku
must be an instance of Nette\Application\AppForm, instance of Nette\Forms\SubmitButton given

public function formSubmitted(AppForm $form)
   {
       $data = $form->getValues();

Proč mi to vrací třídu SubmitButton, když inicializuju AppForm? Resp. dá se v metodě formSubmitted dostat odeslaná data i jinak než z objektu AppForm?

díky

Aurielle
Člen | 1281
+
+1
-
public function formSubmitted(SubmitButton $button)
{
	$data = $button->form->values;
	// ...
}
colek
Člen | 59
+
0
-

excelentní, nastuduju si ještě víc dokumentaci, tohle jsem z toho nevykoukal…

bojovyletoun
Člen | 667
+
0
-

defakto OnSubmit se volá po validním odesláním formu. OnClick se volá při odeslání formu konkrétním tlačítkem. Tyto 2 eventy mohou být kombinovány. Tak existují counterparts OnInvalidSubmit a OnInvalidClick

viz (API)

Editoval bojovyletoun (17. 2. 2011 18:44)