需要重定向页面时,基于Ajax调用值为true。问题是,如果返回真或假的页面重定向。
<a class="btn btn-warning" onclick="return clickthis(25007); " href="test.aspx?id=eheAhgpAS38=">Start </a>
function clickthis(obj) {
var bValid = false;
function ajax1() {
return $.ajax({
type: "POST",
url: "order.aspx/ActivateLocation",
data: '{id:' + obj + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(r) {
if (r.d == "1") {
bValid = true;
} else {
$('#overlay').remove();
$.growl.error({
title: "Error",
message: "An error occurred, Please try again."
});
bValid = false;
}
}
});
}
$.when(ajax1()).done(function(a1) {
return bValid;
});
}
首先没有传递给clickthis()
功能时,你似乎在这方面不显眼的事件处理程序相混淆。同时请注意,你试图从done()
处理程序做你不能从一个异步方法调用返回任何东西。相反,你可以只调用window.location.assign()
在$.ajax()
回调。
<a class="btn btn-warning" data-id="25007" href="test.aspx?id=eheAhgpAS38=">Start </a>
$('a.btn').click(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "order.aspx/ActivateLocation",
data: { id: obj },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(r) {
$('#overlay').remove();
if (r.d == "1") {
window.location.assign($(this).attr('href'));
} else {
$.growl.error({
title: "Error",
message: "An error occurred, Please try again."
});
}
}
});
});
注意,在上面的例子中,我提供了一个对象data
。这是优选的过连接字符串一起实践。
问题是固定的。我已经使用按钮,而不是定位标记。