nette.ajax.js – form submit handler

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

Zdravím, používám nette.ajax.js a potřeboval bych před odesláním provést nějakou funkci. Zaregistroval jsem si handler pomocí $('#form').on('submit', ...), a dokud to neodesílám ajaxově, funguje to jak má. Při ajaxovém odesílání se handler neprovádí – Nette.addEvent pravděpodobně koliduje s jQuery událostma. Jde to nějak obejít?

EDIT: Dalo by se pro ten formulář vypnout AJAXové odesílání a napsat si vlastní, ale moc se mi nechce takhle obcházet nette.ajax.js, když už ho tam používám

Editoval Teyras (11. 8. 2015 18:37)

Vojtěch Dobeš
Gold Partner | 1316
+
+1
-
$('#form').on('submit', function (e) {
	// custom logic
	$(this).netteAjax(e);
});

Tomu formuláři nedávej třídu ajax, protože si ho Ajaxově odešleš sám pomocí netteAjax metody. Neříkal bych tomu obcházení nette.ajax.js – naopak je to jeho feature, protože mnohdy je lepší a čistší si věci takto sám řídit než vše nechat dělat automatiku.

Teyras
Člen | 81
+
0
-

To se mi líbí. Jenom mám problém, že na požadavek odeslaný přes $(this).netteAjax(e) Nette odpoví HTML kódem stránky a ne snippetem s formulářem jak by mělo (a jak to dělá když dám formuláří třídu ajax).

Jan Mikeš
Člen | 771
+
0
-

To vypadá, jako že ti chybí redrawControl()

Teyras
Člen | 81
+
0
-

To si nemyslím, opakuju že když má formulář třídu ajax, server mi normálně posílá snippety. Jen mi tam neproběhne submit handler.

Teyras
Člen | 81
+
0
-

Zjistil jsem rozdíl mezi POST datama u netteAjax(e) a odeslání formuláře s třídou ajax. U prvního chybí v datech tlačítko, kterým jsem to odeslal. Tím pádem server reaguje na každý požadavek jinak.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Otevřeš prosím na repozitáři issue?

Teyras
Člen | 81
+
0
-

Jo.

Editoval Teyras (14. 8. 2015 22:07)

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Thanks.