Ajaxové odeslání formu a zavolání onclick na button

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

Ahoj, chtěl bych se zeptat jak by se dala vyřešit tato situace

<button n:name="saveButton"
		onclick="nejaky onclick event"
		class="ajax">

A potřeboval bych aby se onclick event zavolal až po ajaxovém odeslání formu, jde to nějak řešit ? Díky za pomoc.

CZechBoY
Člen | 3608
+
0
-

Udelej si rozšíření nette ajax.

kleinpetr
Člen | 480
+
0
-

ale když udělám rozšíření tak to bude platit na všechny ajaxový požadavky ne ?
Jak mohu aplikovat rozšíření jen na určité požadavky ? Díky

Editoval kleinpetr (11. 12. 2015 23:04)

F.Vesely
Člen | 369
+
0
-

Odeber tu tridu ajax a zavolej si netteAjax sam na ten formular. Rozsireni by se mely pouzivat pro obecnejsi veci.

$('#form').on('submit', function (e) {
    $(this).netteAjax(e);
});
kleinpetr
Člen | 480
+
0
-

F.Vesely napsal(a):

Odeber tu tridu ajax a zavolej si netteAjax sam na ten formular. Rozsireni by se mely pouzivat pro obecnejsi veci.

$('#form').on('submit', function (e) {
    $(this).netteAjax(e);
});

To vypadá docela dobře, ale mám v tom formu asi 5 buttonů a každý má jiný callback a po stisknutuí každého bych potřeboval volat něco jiného, jak ideálně zjistím, kterým byl form odeslán ? Děkuji

F.Vesely
Člen | 369
+
0
-

Ono by melo jit i toto

$('#button1').on('click', function (e) {
    $(this).netteAjax(e);
});

$('#button2').on('click', function (e) {
    $(this).netteAjax(e);
});

coz by bylo v tvem pripade mozna lepsi.

Hurass
Člen | 114
+
0
-

Nebo můžeš použít např. něco takového:

$('#form input[type="submit"]').on('click', function (e) {
    $(this).netteAjax(e);

	if ($(this).hasClass('sender')) {
		// Todo
	}
});
kleinpetr
Člen | 480
+
0
-

Hurass napsal(a):

Nebo můžeš použít např. něco takového:

$('#form input[type="submit"]').on('click', function (e) {
    $(this).netteAjax(e);

	if ($(this).hasClass('sender')) {
		// Todo
	}
});

Určitě vyzkouším :) jen ještě, jak mohu tedy použít fci ajax complete ?? díky

kleinpetr
Člen | 480
+
0
-

Ikdyž nevím jestli to bude dostačující.. potřeboval bych to eventuelně vymyslet tak, že například:

v modalu mám nějaký form a ten se odesílá ajaxově. A po odeslání je bud vše ok nebo ne, a zde bych poteboval nějak hlídat co server vrátí a podle toho například zavřít modal. Jak to řešíte ? díky

nebo respektive zatím mi bude stačit zavřít modal až po tom co proběhne ajax, takže jsem zase u ajax complete.

@Hurass napadá tě něco ?

Pokud by šlo něco takového tak by to bylo ideální

$('#form input[type="submit"]').on('click', function (e) {
    $(this).netteAjax(e,function(){
		//callback function
	});
});

Editoval kleinpetr (13. 12. 2015 22:29)

kleinpetr
Člen | 480
+
+2
-

Vyřešeno:

$(this).netteAjax(e,{
            complete: function(){
                //callback
            }
        });