Jak po ručním ajaxovém odeslání zabránit defautnímu redirectu?

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

Mám formulář, kerý nemá nastavenou třídu ajax, protože ho potřebuji ještě před odesláním upravit. Zajaxování pak provádím ručně v kódu navázaným na odesílací tlačítko. Přesto se mi po odeslání a překreslení provede redirect, zřejmě proto, že v presenteru v podmínce ->isAjax() je vyhodnocen jako neajaxový. Nastavení třídy ‚ajax‘ před odesláním už napomůže.

Jak mám presenteru říct, že odeslání proběhlo ajaxově a v podmínku $this->isAjax() vyhodnotit jako TRUE? Díky.

<script>
// při ajaxovém překreslení
$.nette.ext({
	load: function () {
		// alternativní ajaxové odeslání formuláře (form nemá nastavenou třídu ajax)
		$('#frm-statusPanel-statusForm').on('submit', function (e) {

			// nějaké vlastní úpravy formuláře před odesláním

			$('#frm-statusPanel-statusForm').removeClass('no-ajax').addClass('ajax'); // <-- tohle nepomůže
			$(this).nette.ajax(e); // tohle provede ajaxové překreslení, ale nakonec se stejně provede redirect
		});
	}
});
</script>
srigi
Nette Blogger | 558
+
+1
-

Nechyba ti v tom tvojom .on('submit') handleri klasicke e.preventDefault()? Pridaj to na uplne prvy riadok toho callbacku.

Editoval srigi (11. 10. 2017 7:05)