【发布时间】:2020-11-28 13:54:28
【问题描述】:
我有以下用于向 Mysql DB 提交数据的 Ajax 代码。
<script>
var amountdue;
var amount;
$('#btn-submit').on('click',function(e){
e.preventDefault();
if ($("#customer").validationEngine('validate')) {
swal({
title: "Submit Confirmation",
text: "Are you sure to submit the data?",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#126495",
confirmButtonText: "Submit",
closeOnConfirm: false
},
function(isConfirm){
if (isConfirm) {
amountdue = "<?php echo $amount_due;?>";
amount = "<?php echo $amount;?>";
$.ajax({
type: "POST",
url: "submit.php",
cache: false,
dataType : "text",
data: {amountdue : amountdue, amount : amount},
success: function(data) {
window.location.href = 'customers';
},
error: function(result) {
swal({
title: "Error",
type: "warning",
text: "Sorry, the data could not be updated due to some reasons.",
confirmButtonColor: "#126495"
});
}
});
} //confirm
});
}
});
</script>
问题是 有时(并非总是) 数据会在 mysql DB 中插入 2 次或更多次。如何防止 Ajax Submit 出现这种行为??
将$('#btn-submit').unbind();
为成功而努力??请求帮助...
【问题讨论】:
-
能否缩进你的代码,这样引用很难阅读
-
缩进代码...
-
这里没有表示双重触发,可以在 submit.php 中完成
-
是的,我不知道在哪里或为什么会重复提交,除非
swal正在做自己的事情,导致它不止一次地点击自己的回调。 -
不确定sweetalert 是否是罪魁祸首。再次解除约束和绑定会有所帮助吗??成功:函数(数据){ $('#btn-submit').unbind(); $('#btn-submit').bind('click'); window.location.href = '客户'; },