Ich habe eine Seite im Tabellenstil mit Zeilen. Jede Zeile hat ein Kontrollkästchen. Ich kann alle / viele Kontrollkästchen aktivieren und auf "Senden" klicken. Für jede Zeile wird ein Jquery-Ajax-Aufruf ausgeführt.
Grundsätzlich habe ich ein Formular für jede Zeile und ich iteriere über alle markierten Zeilen und sende das Formular, das den jquery ajax-Aufruf ausführt.
Ich habe also einen Knopf, der Folgendes bewirkt:
$("input:checked").parent("form").submit();
Dann hat jede Zeile:
<form name="MyForm<%=i%>" action="javascript:processRow(<%=i%>)" method="post" style="margin:0px;">
<input type="checkbox" name="X" value="XChecked"/>
<input type="hidden" id="XNumber<%=i%>" name="X<%=i%>" value="<%=XNumber%>"/>
<input type="hidden" id="XId<%=i%>" name="XId<%=i%>" value="<%=XNumber%>"/>
<input type="hidden" id="XAmt<%=i%>" name="XAmt<%=i%>" value="<%=XAmount%>"/>
<input type="hidden" name="X" value="rXChecked"/>
</form>
Dieses Formular wird an processRow gesendet:
function processRow(rowNum)
{
var Amount = $('#XAmt'+rowNum).val();
var XId = $('#XId'+rowNum).val();
var XNum = $('#OrderNumber'+rowNum).val();
var queryString = "xAmt=" + "1.00" + "&xNumber=" + OrdNum + "&xId=" + xId;
$('#coda_'+rowNum).removeClass("loader");
$('#coda_'+rowNum).addClass("loading");
$.ajax({
url: "x.asp",
cache: false,
type: "POST",
data: queryString,
success: function(html){
$('#result_'+rowNum).empty().append(html);
$('#coda_'+rowNum).removeClass("loading");
$('#coda_'+rowNum).addClass("loader");
}
});
}
Was ich wissen wollte, ist, dass ich auf diese Weise feststellen kann, ob alle meine Ajax-Anrufe abgeschlossen sind. Grund dafür ist, dass Sie die Senden-Schaltfläche aktivieren / deaktivieren möchten, während all diese Anrufe stattfinden.
Vielen Dank und bitte beachten Sie, dass ich meine Variablennamen aufgrund der Empfindlichkeit der Anwendung entstellen musste, sodass viele davon möglicherweise dupliziert werden.