1. 問題場景
獲取短信驗(yàn)證碼發(fā)送短信后,將按鈕置灰60秒后可以發(fā)送下一次驗(yàn)證碼愁茁。
2. 示例代碼
<!DOCTYPE HTML>
<html>
<head>
<title>JS實(shí)現(xiàn)點(diǎn)擊之后60秒后才可以再次點(diǎn)擊</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<style type="text/css">
.cen {
text-align: center
}
</style>
</head>
<body>
<div class="cen">
<!-- button獲取 -->
<!-- <button id='testcc'>免費(fèi)獲取驗(yàn)證碼</button> -->
<a style="text-decoration:underline;">
<span id="test" onclick="sendsms(this)" style="font-size:12px;color:#0000FF" mce_style="font-size:12px">發(fā)送手機(jī)驗(yàn)證碼</span>
</a>
<script type="text/javascript">
var waitTime = 60;
function sendsms(e){
/*發(fā)送驗(yàn)證碼功能*/
//若發(fā)送驗(yàn)證碼成功,則調(diào)用倒計(jì)時(shí)函數(shù)
time(e);
}
function time(ele) {
if (waitTime == 0) {
//button可以使用disabled屬性
ele.disabled=false;
//span等需要設(shè)置onclick方法
ele.setAttribute("onclick", "sendsms(this)");
ele.innerHTML = "發(fā)送手機(jī)驗(yàn)證碼";
waitTime = 60;// 恢復(fù)計(jì)時(shí)
} else {
//button可以使用disabled屬性
ele.disabled=true;
//span等需要去掉onclick方法
ele.removeAttribute("onclick");
ele.innerHTML = waitTime + "秒后可以重新發(fā)送";
waitTime--;
setTimeout(function() {
time(ele)// 關(guān)鍵處-定時(shí)循環(huán)調(diào)用
}, 1000)
}
}
</script>
</body>
</html>
注意:button設(shè)置不可用時(shí)可以使用disabled屬性,span等設(shè)置不可用時(shí)需要設(shè)置或取消onclick事件。