似乎我遇到了jQuery ajax表单的问题,虽然表单字段看起来是空的,但它仍然发送相同的值。因此,我假设jQuery是“缓存”或不覆盖我定义的变种。
function payment(projectID, billID)
{
$.ajax
({
url: 'modules/projects/projectFinancial.php?action=paymentDetails&projectID=' + projectID + '&billID=' + billID + '&rand=' + Math.random(),
dataType: 'html',
async: false,
success: function(msg)
{
$("#paymentDetails").html(msg);
}
});
$("#payment").dialog(
{
width: 500,
height: 300,
modal: true,
buttons:
{
Save: function()
{
var paymentAmount = $("#PaymentAmount").val();
var paymentMethod = $("#PaymentMethod").val();
var paymentRemarks = $("#PaymentRemarks").val();
if ($('#PaymentDone').is(':checked'))
{
var paymentDone = 1;
}
else
{
var paymentDone = 0;
}
$.ajax
({
url: 'modules/projects/projectFinancial.php?action=payment&projectID=' + projectID + '&billID=' + billID + '&paymentAmount=' + paymentAmount + '&paymentMethod=' + paymentMethod + '&paymentRemarks=' + paymentRemarks + '&paymentDone=' + paymentDone + '&rand=' + Math.random(),
dataType: 'html',
async: false,
success: function(msg)
{
if (msg != "error")
{
showFinancial(msg, '{/literal}{$marginCalculated}{literal}');
}
}
});
$(this).dialog("close");
}
}
});
}
答案 0 :(得分:0)
尝试使用以下代码完全关闭缓存。此外,您应该使用 POST 方法来更改服务器上的内容(付款似乎是这样的操作)。
$(function() {
$.ajaxSetup({ cache: false });
});
另一个想法:确保第二次点击“保存”时,#PaymentAmount
引用第二个对话框中的输入字段。在动态加载的内容中使用ID是有风险的,因为如果您多次加载相同的内容,就可以轻松地获得重复的ID。
$(this).dialog("close")
实际上并未从DOM中删除旧对话框
请尝试使用$(this).dialog("destroy")
。