我有一个带有行的表格样式页面。每行都有一个复选框。我可以选中所有/很多复选框,然后单击“提交”,这是对每一行的Jquery ajax调用。
基本上,我为每一行都有一个表单,并且遍历所有选中的行并提交执行jquery ajax调用的表单。
所以我有一个按钮,它可以:
$("input:checked").parent("form").submit();
那么每一行都有:
<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>
该表格提交给processRow:
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");
}
});
}
我想知道的是,通过这种方法,我可以判断出我所有的Ajax调用是否均已完成。原因是要在所有这些调用发生时启用/禁用提交按钮。
谢谢,请注意,由于应用程序的敏感性,我不得不修改变量名,因此许多变量名可能重复。
最简单的方法是使用.ajaxStop()
事件处理程序:
$(document).ajaxStop(function() {
// place code to be executed on completion of last outstanding ajax call here
});
您还可以手动检测是否有任何ajax调用仍处于活动状态:
创建一个包含活动Ajax连接数的变量:
var activeAjaxConnections = 0;
在打开新的Ajax连接之前,递增该变量
$.ajax({
beforeSend: function(xhr) {
activeAjaxConnections++;
},
url (...)
在success
部分检查,如果该变量等于零(如果是的话,最后的连接已完成)
success: function(html){
activeAjaxConnections--;
$('#result_'+rowNum).empty().append(html);
$('#coda_'+rowNum).removeClass("loading");
$('#coda_'+rowNum).addClass("loader");
if (0 == activeAjaxConnections) {
// this was the last Ajax connection, do the thing
}
},
error: function(xhr, errDesc, exception) {
activeAjaxConnections--;
if (0 == activeAjaxConnections) {
// this was the last Ajax connection, do the thing
}
}
如您所见,我还添加了检查返回错误的信息
问题内容: 现在,我使用一个静态布尔值来告诉初始化何时发生。有没有更简单的方法知道我已经调用了initialize? 谢谢!!! 解决了!!!!非常感谢您的评论。您需要在扩展应用程序的类中初始化解析,然后将其作为应用程序(而不是其他活动)添加到清单文件中。 :) 这是我使用Parse的课程: 这是我的android清单文件 问题答案: 创建一个应用程序类,然后在onCreate中初始化解析。 在此
问题内容: 我正在使用jQuery 将X数量的js文件加载到我的页面中。每个JS页面中都有一个AJAX调用,该调用从数据库中获取数据。 我正在使用该方法查看何时已加载所有文件,但我需要等待所有AJAX调用也已完成。 我该如何做才能等待AJAX调用在包含的文件中完成? 问题答案: 您可以使用 每当Ajax请求完成时,jQuery都会检查是否还有其他未完成的Ajax请求。如果不存在,jQuery将
在角度分量的顶部有以下初始化。 在我的组件中的某个地方,我使用选择器对Ngrx存储进行以下调用,以获取可观测数据。所有这些都很好,我得到了我想要的数据。 我需要知道这个可观察的什么时候完成。我需要设置一个布尔值,当所有可观察到的数据都试图完成时,它将关闭加载指示器。这是通过Web服务完成的。 因为可观测的源来自其他地方,所以我无法挂起“完整”回调
问题内容: 我使用jQuery。而且我不想在我的应用程序上进行并行AJAX调用,每个调用都必须等待上一个调用之后才能开始。如何执行呢?有帮手吗? 更新 如果我想知道XMLHttpRequest或jQuery.post的任何同步版本。但是顺序!=同步,我想要一个异步和顺序解决方案。 问题答案: 有比使用同步ajax调用更好的方法。jQuery ajax返回一个延迟,因此您可以使用管道链接来确保每个a
问题内容: 假设我有一堂课和一堂课。 我知道我可以通过一个拿到B,因为A 有 (或 拥有 )B: 。 但是,如果我有B,我可以得到A吗? 问题答案: 当然,只需在B类中添加例程,然后将构造函数中的行更改为 当然,这假设您的B类具有一个接受的构造函数,例如
问题内容: 我想检查活动是否正在运行或完成。有什么方法可以检查活动状态? 我找到了,但是我不确定。 问题答案: 如果您想执行任何步骤,将变得不可见。 他们是这里的几种选择。 onDestroy() -进行最终清理。 isFinishing() - 调用后立即返回true。 onStop() -当被框架进程终止时。(未销毁) onPause() -当被其他覆盖 onBackPressed() -捕获