我有问题。我在匿名函数中有以下代码:
...
if (fillActyalizerForm(jQuery(this).attr('account_id'), jQuery(this).attr('currency_id')) == false) {
return false;
}
jQuery("#actyalizer").slideToggle("slow");
...
问题是即使我返回false,元素也会向下滑动。
function fillActyalizerForm(account_id, currency_id) {
formValues = {};
jQuery.ajax({
async: false,
type: 'POST',
url: "..",
data: "{'accountId':" + account_id + ",'currencyId':" + currency_id + "}",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
if (data && data.hasOwnProperty("d")) {
data = data.d;
}
if (!data.Error) {
formValues = data;
delete formValues.Error;
} else {
alert('<%=Resources.app.Actyalizer_AcLoadFail %>');
return false;
}
},
error: function (data) {
alert('<%=Resources.app.Actyalizer_AcLoadFail %>');
return false;
}
});
所以我成功收到警告信息,但它仍然向下滑动了elemtn。
答案 0 :(得分:1)
问题是fillActyalizerForm
函数执行异步.ajax
方法,然后返回而不指定返回值(默认返回值为false)。
我认为你有两个选择:
jQuery("#actyalizer").slideToggle("slow");
移至success
功能。我会推荐选项一。
这可以通过将函数作为参数传递给fillActyalizerForm
或物理移动代码来实现。