我知道一个非常相似的问题是asked and answered here,但那里的答案并不适用于我。我不知道我做错了什么,或者过去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。
答案 0 :(得分:1)
我认为你很接近。
关键是您尝试过的“async:false”,但是“返回true”;并且“返回虚假;”从ajax成功方法中只返回ajax调用。 true / false值与调用堆栈上的原始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;
}
这应该有效。