防止ajax提交的dupplicate

时间:2016-06-20 11:04:21

标签: php ajax

我使用ajax创建回复列表。

在列表的末尾,我添加了textarea表单,允许用户添加回复(也使用ajax)。

问题是我在我的主PHP页面中调用了我的JS,因此当用户想要提交回复时,该页面并不知道" js代码。如果我将js添加到ajax php文件/页面,代码将起作用,但随后它将被复制多次,当用户提交表单时,文本将被多次提交...

在我的控制台中,我看到每次加载回复列表时,JS文件都会重复

我该如何预防?

2 个答案:

答案 0 :(得分:0)

在用户按下一次后立即禁用提交按钮。
使用jQuery:

$("#button").attr('disabled','disabled');

确保在AJAX错误上删除disabled属性,以便用户可以使用新数据重新提交表单。

您可以删除{{1}像这样的属性:

disabled

答案 1 :(得分:0)

[改进] 如果您想在导航或F5按下时不重复数据,只需在执行任何操作后释放$ _POST变量,并检查是否未设置(当然,在清理之前)将您重定向到您想要的任何位置。例如:

/* HERE do the job with ajax response. */
     if(!isset($_post['foo'])) header('Location: wherever.php');
$_POST['foo']=NULL;

如果你正在使用$ _GET ...不要这样做,请使用$ _POST ... $ _POST是你的朋友。

最后确保如果你按F5,你不会通过邮寄重新发送表格变量(否则你会得到相同的)。如果发生这种情况,请在页面加载时使用jQuery清除输入。

$('#inputID').val('');