我使用ajax创建回复列表。
在列表的末尾,我添加了textarea表单,允许用户添加回复(也使用ajax)。
问题是我在我的主PHP页面中调用了我的JS,因此当用户想要提交回复时,该页面并不知道" js代码。如果我将js添加到ajax php文件/页面,代码将起作用,但随后它将被复制多次,当用户提交表单时,文本将被多次提交...
在我的控制台中,我看到每次加载回复列表时,JS文件都会重复
我该如何预防?
答案 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('');