【发布时间】:2014-09-10 02:01:22
【问题描述】:
我知道类似的问题已经发布了很多次,但是我已经阅读了很多,但找不到我的问题的答案。
我有一个等待 ajax 请求响应的函数。很多人会问为什么?好吧,我正在使用一个向导 Jquery 插件,它在离开步骤时执行一个函数 onLeaveAStepFunction,然后如果来自 onLeaveAStepFunction 的返回值为真,向导将转到选定的步骤;否则它保持在同一步骤中。
我正在这样做 async: false 等待并且它有效,但这是一个糟糕的设计。另外,我不能使用 blockUI 插件。
我该怎么做?
一些代码:
初始化向导:
$("#wizard").smartWizard({
onLeaveStep : onLeaveStepFunction,
});
调用ajax请求:
function onLeaveStepCallback(obj, context) {
nextStep = sendForm();
}
ajax 请求:
var nextStep = false;
$.ajax({
url : path,
type : "POST",
async : false,
data : $("#" + idForm).serialize(),
success : function(data) {
$("#" + idDiv).html(data);
nextStep = !$("#" + idHiddenErrores).val())
}
});
省略属性。请帮帮我。
【问题讨论】:
-
你不能这样做,因为 ajax 的异步特性......
-
@Arun 那我怎样才能阻止 un 等待 ajax 响应呢?
-
@Arun 虽然 AJAX 本质上是异步的,但你不能在需要时执行阻塞的 AJAX 请求,这根本不是真的
-
@BrianBolli 那么它本质上不是异步的,不是吗...如果您使用的是异步请求,这是不可能的,但有一些方法可以使其同步但有成本...
-
同意,但有一次我需要在执行警报之前执行一个被阻止的 AJAX 请求。我的断言只是可以做到,一定是误读了您的评论。 :)
标签: javascript jquery ajax smart-wizard