您的位置:首页 > 其它

防止按钮在短时间内被多次点击

2014-03-10 14:37 363 查看
如果一个按钮可以在短时间内多次点击,那么有可能会被用户恶意点击,为防止这种情况,可以设定一定时间内只能点击一次,其他时间禁止点击按钮。

1.效果如下:

// /*
timeId=window.setTimeout("method()",1000); window.clearTimeout(timeId);定时执行
timeId=window.setInterval("method()",1000); window.clearInterval(timeId);循环执行
*/

var nn = 0;
var tipId;
var tipO;
function show() {
nn = 10;
tipId = window.setInterval("start()", 1000); //每隔1秒调用一次start()方法
$("#btn").removeAttr("onclick");//取消点击事件
tipO = window.setTimeout("getclick()", 10000);//10秒后给定点击事件
}

function start() {
if (nn > 0) {
var vv = " 点下我不会怀孕的 (" + nn + ")";
$("#btn").attr("disabled", "disabled"); //使按钮不能被点击
$("#btn").attr("value", vv); //更改按钮上的文字
nn--;
} else {
$("#btn").removeAttr("disabled"); //使按钮能够被点击
$("#btn").attr("value", " 点下我不会怀孕的 "); //更改按钮上的文字
window.clearInterval(tipId); //清除循环事件
}
}

function getclick() {
$("#btn").attr("onclick", "show()"); //给定点击事件
window.clearTimeout(tipO);//取消定时事件
}
// ]]>

2.代码如下:

<div>
<input type="button" value=" 点下我不会怀孕的 " id="btn" onclick="show()" />
</div>
<script type="text/javascript">
/*
timeId=window.setTimeout("method()",1000);     window.clearTimeout(timeId);定时执行
timeId=window.setInterval("method()",1000);     window.clearInterval(timeId);循环执行
*/

var nn = 0;
var tipId;
var tipO;
function show() {
nn = 10;
tipId = window.setInterval("start()", 1000); //每隔1秒调用一次start()方法
$("#btn").removeAttr("onclick");//取消点击事件
tipO = window.setTimeout("getclick()", 10000);//10秒后给定点击事件
}

function start() {
if (nn > 0) {
var vv = " 点下我不会怀孕的 (" + nn + ")";
$("#btn").attr("disabled", "disabled"); //使按钮不能被点击
$("#btn").attr("value", vv); //更改按钮上的文字
nn--;
} else {
$("#btn").removeAttr("disabled"); //使按钮能够被点击
$("#btn").attr("value", " 点下我不会怀孕的 "); //更改按钮上的文字
window.clearInterval(tipId); //清除循环事件
}
}

function getclick() {
$("#btn").attr("onclick", "show()"); //给定点击事件
window.clearTimeout(tipO);//取消定时事件
}
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: