gustavotkg 最近分享了他的以下知识,以回应有关阻止访问者向文件提交多个企业的查询。他建议如下:
“如果您在onclick事件中禁用了提交按钮,则访问者为 必须刷新页面才能重新提交表单“。
您可以执行以下操作:
var btn = document.getElementById("button-id");
btn.onclick = function() {
btn.disabled = 'disabled';
}
禁用该按钮提供了一个临时解决方案,实际上似乎很难阻止多个肠道。
这可以是暂时的 gustavotkg 建议的解决方案可以通过进一步启用提交按钮来辅助时间 期限比如一周或168小时?
答案 0 :(得分:1)
这是一个展示所需功能的简单示例。
设置的Cookie的有效期为7天。单击该按钮时,onclick事件将检查cookie是否已设置,如果已设置,则会通过返回false来拒绝提交。否则,该函数设置cookie并允许提交通过。
请注意这是不保证任何内容,因为任何(非新手)用户都可以删除其Cookie并重新提交条目。
<script type="text/javascript">
// Thanks to http://www.quirksmode.org/js/cookies.html
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
</script>
<form action="#" method="POST">
<input id="button-id" type="submit" value="Submit" />
</form>
<script type="text/javascript">
var btn = document.getElementById("button-id");
btn.onclick = function() {
var cookie_name = 'submitted_entry';
btn.disabled = 'disabled';
if( readCookie( cookie_name))
{
alert( 'You can not submit an entry again!');
return false;
}
else
{
createCookie( cookie_name, 1, 7);
}
}
</script>