所以我有一个用户选择某些复选框后运行的JavaScript方法。此方法使一个AJAX调用呈现“标题”视图,然后为每个选定的复选框进行AJAX调用,然后也附加这些视图。
问题在于,当我使用JQuery循环检查复选框并为每个复选框进行AJAX调用时,它只是以正确的顺序依次进行一堆AJAX调用,但它们会被渲染在不同的时间取决于每个人花多长时间。我想这是AJAX的美妙之处,但是我需要按照我为这个特定任务调用它们的顺序进行渲染。
以下是方法:
function GenerateTermSheet()
{
var urlString = "<%= System.Web.VirtualPathUtility.ToAbsolute("~/mvc/Indications.cfc/RenderPartialTermSheetView")%>";
var jsonNickname =
{
id : GetGUIDValue(),
viewName : 'Nickname'
}
$.ajax({
type: "POST",
url: urlString,
data: jsonNickname,
success: function(data) {
$('#termSheetPrinted').append(data);
}
});
$('#termSheetPopup input[type="checkbox"]:checked').each(function(){
var checkedName = $(this).attr("name");
var json =
{
id : GetGUIDValue(),
viewName : checkedName
}
$.ajax({
type: "POST",
url: urlString,
data: json,
success: function(data) {
$('#termSheetPrinted').append(data);
}
});
})
$('#termSheetPopup').dialog('close');
$('#termSheetPrinted').dialog('open');
}
知道我该怎么做吗?谢谢!
答案 0 :(得分:0)
我建议将第二个AJAX调用置于必须首先完成的调用的成功函数中调用的函数中。这将导致第二次调用仅在第一次调用成功时执行,并且将实现您正在寻找的目标。