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
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>