我的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);
}
}
});
});
答案 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
获取最新值。
希望这会对你有所帮助。