我有一个PHP表单设置,它对自己的工作很好,但现在,我已经与AJAX挂钩了,即使有人提交表单时,我也会收到重复提交他们只有在多次将详细信息添加到数据库后才提交表单。AJAX提交表单上的重复条目
从我的测试看来,它好像发送了两次数据,但看着其他人提交的内容,在某些情况下它可能会执行两次以上的操作,但我无法复制该内容。
下面是我用最初的代码:
$("#email-gather").submit(function(e) {
var url = "https://www.ruroc.com/emailgather.php";
$.ajax({
type: "POST",
url: url,
data: $("#email-gather").serialize(),
complete: function(data) {
$('.email-win input.button').val("submitted").attr('disabled', 'disabled').css({'background-color' : '#b34c4c','text-shadow' : 'none'});
}
});
e.preventDefault();
});
我不得不环顾四周寻找一个解决方案,我看见有几个人有类似的问题说.live应该被用来代替.submit所以我修改我的代码这个:
$("#email-gather").live("submit", function() {
event.preventDefault();
var url = "https://www.ruroc.com/emailgather.php";
$.ajax({
type: "POST",
url: url,
data: $("#email-gather").serialize(),
complete: function(data) {
$('.email-win input.button').val("submitted").attr('disabled', 'disabled').css({'background-color' : '#b34c4c','text-shadow' : 'none'});
}
});
});
但是这也导致了同样的问题,所以我希望你可能有这个问题的解决方案。我很感谢您能就此提供的任何帮助。
您可能需要一个唯一的索引 – e4c5
在运行异步'.ajax'调用之前,需要调用'e.preventDefault();'。在第一个片段中,然后不要运行'$(“#email-gather”)。submit(function(e){}'end – RiggsFolly
在第二个片段中,按照正确的顺序有东西,但是你没有'事件'参数传递在'函数()'___这应该会产生一个编译错误,我会想到____ – RiggsFolly