jquery - 如何从 jQuery.steps 返回 AJAX 调用的结果?
问题描述
我知道在这里提出并回答了一个非常相似的问题,但那里的答案对我不起作用。我不知道我是否做错了什么,或者过去 18 个月中 jQuery 或 jQuery.steps 是否发生了变化。
在该onStepChanging
方法中,我有以下代码(为了清楚起见,省略了检查我们正在执行的步骤的代码)...
$.ajax({
url: '/Home/ValidatePostcode',
type: "GET",
data: {
postcode: postcode
},
success: function (result) {
if (result) {
return true;
} else {
return false;
}
}
});
但是,这不起作用。该onStepChanging
方法在 AJAX 调用之前返回,因此回调中的return
语句success
被忽略。根据链接帖子中的答案,这应该可行。
并不是我想同步执行此操作,而是我尝试添加async: false
到 AJAX 调用,但没有任何区别。
任何人都知道我怎样才能让它工作?我正在使用jQuery.steps v1.0.1(今天下午下载,所以他是最新版本)和jQuery v1.12.3。
解决方案
我认为你很接近。
关键是您尝试过的“async:false”,但是您的“return true;” 和“返回错误;” 从 ajax 成功方法内部只返回到 ajax 调用。真/假值与调用堆栈上的原始 onStepChanging 方法无关。
- 在 ajax 调用之前创建一个变量,比如“var response = false;”
- 然后将 async: false 添加到 ajax 调用中
- 然后从你的成功方法中设置 response = true;
- 然后返回 onStepChanging 方法返回响应变量。“回复回复;”
所有这些可能看起来像这样:
onStepChanging: function (...)
{
var response = false;
$.ajax({
url: '/Home/ValidatePostcode',
type: "GET",
async: false,
data: {
postcode: postcode
},
success: function (result) {
if (result) {
response = true;
}
}
});
return response;
}
那应该行得通。
推荐阅读
- python - CUDA_ERROR_ILLEGAL_ADDRESS - 在训练 tensorflow keras 模型时
- amazon-redshift - 我们可以在 Redshift 中使用 CTE(with 子句)进行 UPDATE 查询吗?
- spring-cloud-stream - 如何在消费者中获取消息标头
- linux - u-boot 在“解压缩/加载内核映像”处挂起
- c# - 如何同步读取和写入来自不同任务的 NetworkStream?
- c++ - 如何在文件处理中使用 for 循环获取多个输入?
- r - 在 ggplot 条形图中按组标准化
- matlab - 如何从 Matlab/gramm 中的神经脉冲发射图中绘制置信区间图?
- jenkins - 带有 Tycho 构建的 Jenkins Artifactory 插件
- apache-flink - Flink Operator 字数统计教程:控制台输出在哪里?