一个提交按钮的时间控制

gustavotkg响应有关防止访问者提交多个enteries到文件中查询最近分享下面这段他的知识。 他建议如下:

“如果你禁用了onclick事件提交按钮,访客
将刷新页面重新提交表单“。

你可以这样做:

var btn = document.getElementById("button-id"); btn.onclick = function() { btn.disabled = 'disabled'; }

禁用按钮提供了一个临时的解决方案,事实上它出现多个enteries难以避免。

可以通过gustavotkg建议这个临时的解决方案进一步实现为一个时间段禁用提交按钮一周168hrs进行辅助说呢?

--------------解决方案-------------

下面是一个简单的例子演示所需的功能。

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>

分类:php 时间:2015-03-15 人气:0
本文关键词: PHP,形式
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.219 (s). 10 q(s)