需要重定向到页面时值为true

问题描述 投票:0回答:2

需要重定向页面时,基于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;
  });
}
jquery ajax
2个回答
2
投票

首先没有传递给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。这是优选的过连接字符串一起实践。


0
投票

问题是固定的。我已经使用按钮,而不是定位标记。

© www.soinside.com 2019 - 2024. All rights reserved.