Nefunguje onClick na submit buttonu ajaxoveho formulare

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

Zdravim,
nevim jestli delam neco spatne, ale nevola se mi callback na onClick submitbuttonu formulare, ale JEN PRI AJAX odesilani – bez ajax to funguje vse Ok

Nette 2.0.12
PHP 5.4.9–4ubuntu2.1

presenter:

<?php
use Nette\Application\UI\Form,
	Nette\Forms\Controls\SubmitButton;
/**
 * Homepage presenter.
 */
class HomepagePresenter extends BasePresenter
{
	protected function createComponentTestForm() {
		$form = new Form;
		$form->getElementPrototype()->setClass('ajax');
		$form->addText('test','Test');
		$form->addSubmit('submit','submit')
				->onClick[] = $this->testFormClicked;
		return $form;
	}

	public function testFormClicked(SubmitButton $btn) {
		$vals = $btn->form->getValues();
		\Nette\Diagnostics\Debugger::fireLog($vals);
	}
}
?>

sablona:

<div id="test-form">
	{control testForm}
</div>

a jquery zajaxovateni:

<script type="text/javascript">
$('#test-form form.ajax').on('submit',function(e){
	e.preventDefault();
	var $form = $(this)
	$.ajax({
		method:$form.attr('method'),
		url:$form.attr('action'),
		data:$form.serialize()
	})
})
</script>

Ajaxem se posle normalne POST se vsim vsudy jak to ma byt, jen se nezavola ten cb testFormClicked. Nevite nekdo kde by mohla byt chyba??
(Vsechny jscripty jsou nalinkovane spravne a vse ostatni by taky melo byt ok – je to cerstvy sandbox pres composer)

pepakriz
Člen | 246
+
0
-

V datech se ti neposílá hodnota tlačítka. Schválně porovnej link bez AJAXu a s ním. $form.serialize() nedodá hodnotu stisklého tlačítka. Použij $.nette.ajax, který toto řeší automaticky.

xklid101
Člen | 2
+
0
-

Aha, hodnoty submitbuttonu mi nejak utekly.
Diky moc.