当用户点击返回按钮时清除表单数据

5
当用户点击浏览器后退按钮时,如何清除联系表单数据以防止垃圾邮件发送者多次提交表单并重复点击提交按钮?

1
那不是防止垃圾邮件发送者的正确方法。他们通常会自动化表单提交。 - mesutozer
我认为你不能这样做,但你可以使用验证码来防止多次提交。 - Reko
4个回答

9
如果你正在使用HTML5,那么你可以将表单的自动填充功能关闭。
<form action="youractionpage" method="post" autocomplete="off">
</form>

太棒了!这个有效。在防止垃圾邮件发送方面,该功能有多安全? - Julian
垃圾邮件发送者可以随意多次提交您的表单,除非您在表单中使用验证码。autocomplete只会在提交后清空您的表单。 - yaqoob

5
你可以使用JavaScript(或jQuery)在页面加载时清空所有输入内容。
jQuery示例:
<script>
$(document).ready(function() {
    $('input').val('');
});
</script>

刚想建议这个,但是楼主的想法实际上并不能防止垃圾邮件。 - WhiskeyTangoFoxtrot
1
我不确定他是指垃圾邮件发送者还是那些不懂计算机的人按下返回按钮,然后重新提交表单,因为他们仍然在页面上看到输入。 - Lee Salminen

4

在表格中使用验证码可以有效地防止垃圾邮件发送者批量提交表单,这是一个很好的做法。清除表单并不会太有帮助,因为垃圾邮件发送者使用表单填充扩展程序。


0

您可以在表单字段上使用autocomplete="off"属性,但由于大多数浏览器现在使用本地缓存来增强性能,其中一些可能仍会记住这些字段。

忽略它的一种方法是将页面头部的Cache-Control设置为不使用缓存。

然而,仍然存在通过刷新重新发送的问题。提交表单后,按F5将刷新新页面并重新提交发布数据。为了避免这种情况,您需要清除已发布的数据。我不确定最好的方法是什么,但我遇到了一种方法:当您在服务器端使用redirect到另一个页面时,所有$_POST数据都被清除。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接