在AJAX调用之后在jQuery中更新变量

时间:2017-09-21 23:14:20

标签: javascript jquery ajax variables

我的AJAX功能在下面成功运行,直到有人resubmits the AJAX call without a page refresh。在这种情况下,AJAX调用使用var value的旧值而不是更新的值。因此,我需要在成功函数结束时更新var amount,但是我没有这样做。

$(document).on('click', '#updateBidButton', function (e) {
  e.preventDefault();

  var amount = ('#curr_bid').val()
  var expire_date = "<?php echo $this->item['expire_date']?>";

  $.ajax({
    type: 'post',
    url: "?module=items&controller=index&action=submit",
    dataType: "text",
    data: 'amount=' + amount + '&expire_date=' + expire_date,
    beforeSend: function () {
      $('.auction_box').animate({
        'backgroundColor': '#ffdead'
      }, 400);
    },
    success: function (result) {
      if (result == 'ok') {
        $('.auction_box').animate({
          'backgroundColor': '#A3D1A3'
        }, 500);
        amount = $('#curr_bid').val();
        setTimeout(function () {
          $('.auction_box').css('background-color', '#FFF');
        } , 5000);
      }
    }       
  });
});

2 个答案:

答案 0 :(得分:0)

在未更新的代码金额变量中,请使用

   var newValue = ''; // for example get new value from ajax response 
   $('#curr_bid').val(newValue)

用于更新

答案 1 :(得分:0)

您可以使用解决方案

$(document).on('click', '#updateBidButton', function (e) {
  e.preventDefault();

  var amount = $('#curr_bid').val()
  var expire_date = "<?php echo $this->item['expire_date']?>";

  $.ajax({
    type: 'post',
    url: "?module=items&controller=index&action=submit",
    dataType: "text",
    data: 'amount=' + amount + '&expire_date=' + expire_date,
    beforeSend: function () {
      $('.auction_box').animate({
        'backgroundColor': '#ffdead'
      }, 400);
    },
    success: function (result) {
      if (result == 'ok') {
        $('.auction_box').animate({
          'backgroundColor': '#A3D1A3'
        }, 500);
        setTimeout(function () {
          $('.auction_box').css('background-color', '#FFF');
        } , 5000);
      }
    }       
  });
});

在第3行中遗漏$。无需在成功方法中将值重新分配给amount变量。

点击amount variable会从input#curr_bid获取最新值。

希望这会对你有所帮助。