How to put a loader inside a for loop that calls JSON
I do a Json call in a for loop and at every cycle it inserts a record to a database. Everything works good but sometimes it would just skip the for loop and not insert any record even though in the DOM I can see all the selected items that needed to be added to a database. My question is there a way I can trap such issue? I"m thinking putting a wait loader would not allow user to submit the form until it completes all cycle. How to do that? or is there a more efficient method to call JSON instead of looping it everytime. Please advise
-
- function TaskStepsClk(lnk) {
- var TaskID, TicketID, LoginName, url, QueueNameID,TaskNameID
-
- <% If Not sTaskNameID = Nothing Then%>
- TaskNameID =<%=sTaskNameID%>;
- <%Else%>
- TaskNameID = 0;
- <%End If%>
-
- $( "#TaskStepsModal" ).dialog({
- resizable: false,
- height:450,
- width:700,
- modal: true,
- buttons: {
- Cancel: function() {
- $( this ).dialog( "close" );
- },
- "Update": function() {
- var n = $("#grdTaskSteps").find("tr").length;
- var obj = {};
- obj.TaskNameID = TaskNameID;
-
- $.ajax({
- type: "Post",
- url: "AdmTasks.aspx/DeleteSteps",
- data: JSON.stringify(obj),
- contentType: "application/json; charset=utf-8",
- dataType: "json",
- success: function (r) {
- //alert("Deleted ");
- //alert(r.d);
- },
- error: function (err) {
- //alert(err);
- alert(err.d);
- }
- })
- obj = {};
- if (n > 1)
- {
- for (var i = 1; i < n; i++) {
- obj.IsRequired = $("#grdTaskSteps").find("tr").eq(i).find('td:eq(0) input').is(':checked');
- obj.StepName = $("#grdTaskSteps").find("tr").eq(i).find("td").eq(1).text();
- obj.StepOrder = $("#grdTaskSteps").find("tr").eq(i).find('td:eq(2) input[type="hidden"]').val();
- obj.StepNameID=$("#grdTaskSteps").find("tr").eq(i).find('td:eq(1) input[type="hidden"]').val();
- obj.TaskNameID = TaskNameID;
-
- //alert("CHECKBOX-REQUIRED" + obj.IsRequired)
- //alert("StepName" + obj.StepName)
- // alert("TASKID" + obj.TaskNameID)
- //alert("StepOrder" + obj.StepOrder)
- //alert("StepNameID" + obj.StepNameID)
-
- $.ajax({
- type: "Post",
- url: "AdmTasks.aspx/AddSteps",
- data: JSON.stringify(obj),
- contentType: "application/json; charset=utf-8",
- dataType: "json",
- success: function (r) {
- //alert("Success");
- //alert(r.d);
- },
- error: function (err) {
- //alert("FAIL");
- alert(err.d);
- }
- })
- }
- }
- else{
- alert("No steps assigned")
- }
-
- $( this ).dialog( "close" );
- }
- }
- });
-
- $("#TaskStepsModal").siblings('div.ui-dialog-titlebar').remove();
- $("#TaskStepsModal").dialog("open");
- }