2016-12-02 55 views
1

之间我上保存按钮点击调用Ajax和JSON数据传递给控制器​​的方法保存数据,但是当我们将它保存加载启动后突然停止,虽然数据不保存。AJAX加载指示灯停在

它不工作我已经尝试过所有方式,但不工作请帮助我。

<button type="button" id="saveDeleg" class="btn_reg_back btnmainsize btnautowidth btngrad btnrds btnbdr btnsavesize " aria-hidden="true" data-icon="&#xe0f4;">@Resources.Resource.Save</button> 
$('#saveDeleg').click(function() { 
    var response = Validation(); 
    if (!response) { 
    return false; 
    } 

    $("#overlay").show(); 
    $('.loading').show(); 

    if ($('#organName').val() == '') { 
    $('#validorganisation').show(); 
    return false; 
    } else { 
    $('#validorganisation').hide(); 
    } 
    //Contact name 
    var SubDelegation = $('#subdelegation').is(':checked'); 
    var CopyNotification = $('#copynotification').is(':checked'); 
    var ArrangementId = $("#ArrangementId").val(); 
    var paramList = { 
    ArrangementId: ArrangementId, 
    ArrangementName: $('#arrangName').val(), 
    OrganisationName: $('#organName').val(), 
    OrganisationId: $('#OrganisationId').val(), 
    ContactName: $('#contactName').val(), 
    ContactId: $('#ContactId').val(), 
    SubDelegation: $('#subdelegation').is(':checked'), 
    CopyNotification: $('#copynotification').is(':checked'), 
    ContactType: $('#ContactType').val(), 
    SelectedTypeName: $("input[name$=SelectedType]:checked").val() 
    }; 

    setTimeout(function() { 
    $.ajax({ 
     async: false, 
     type: "POST", 
     url: '@Url.Action("SaveDelegation", "Structures")', 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     data: JSON.stringify(paramList), 
     processdata: true, 
     success: function(result) { 
     //stopAnimation() 
     paramList = null; 
     if (result == 0) { 
      window.location.href = '../Structures/MyDelegationArrangement'; 
     } else if (result == 1) { 
      window.location.href = '../Structures/CreateDelegation'; 
     } else if (result == 2) { 
      window.location.href = '../Home/Error'; 
     } else if (result == 3) { 
      window.location.href = '../Account/Login'; 
     } else { 
      //validation message 
      alert('Error'); 
     } 
     }, 
     error: function() {}, 
     complete: function() { 
     $("#overlay").hide(); 
     $('.loading').hide(); 
     } 
    }); 
    }, 500); 
}); 
+2

加载指示器的问题是因为您使用了'async:false'来锁定用户界面。删除该设置。另外,如果数据没有保存,我想你的AJAX返回一个错误,所以检查控制台以查看响应代码。你也可以在'error'回调函数中加入一些逻辑来给你一些关于发生什么的信息。 –

+0

非常感谢它的工作原理。 –

+0

@RoryMcCrossan请添加您的评论作为答案,以便我可以接受您的答案。 –

回答

0

与负荷指标的问题是因为你使用async: false这锁定了用户界面。删除该设置。

另请注意,如果数据未保存,我会假设您的AJAX调用返回错误。如果是这样,请检查控制台以查看响应代码。在回调函数中加入一些逻辑值可能会给你一些关于发生什么事情的信息,并告知用户下一步该做什么。