風(fēng)信建站項(xiàng)目開發(fā)中應(yīng)用到發(fā)送手機(jī)短信進(jìn)行驗(yàn)證的功能性開發(fā),為提升用戶的體驗(yàn),一般會(huì)在發(fā)送驗(yàn)證碼之后,按鈕處理禁用狀態(tài),并開始進(jìn)入倒計(jì)時(shí),倒計(jì)時(shí)結(jié)速之后用戶才可以再次發(fā)送驗(yàn)證碼,這種交互式的功能對(duì)于新注冊(cè)用戶是非常有用的,能有效的提升用戶的注冊(cè)體驗(yàn),今天風(fēng)信建站將此功能代碼分享給大家:
說明:采用Ajax進(jìn)行數(shù)據(jù)驗(yàn)證,并加了一下定時(shí)器在html結(jié)構(gòu)中進(jìn)行倒計(jì)時(shí)。
說明:采用Ajax進(jìn)行數(shù)據(jù)驗(yàn)證,并加了一下定時(shí)器在html結(jié)構(gòu)中進(jìn)行倒計(jì)時(shí)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="HTML/js/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
var InterValObj; //timer變量,控制時(shí)間
var count = 5; //間隔函數(shù),1秒執(zhí)行
var curCount;//當(dāng)前剩余秒數(shù)
function sendMessage() {
curCount = count;
//設(shè)置button效果,開始計(jì)時(shí)
$("#btnSendCode").attr("disabled", "true");
$("#btnSendCode").val("請(qǐng)?jiān)?quot; + curCount + "秒內(nèi)輸入驗(yàn)證碼");
InterValObj = window.setInterval(SetRemainTime, 1000); //啟動(dòng)計(jì)時(shí)器,1秒執(zhí)行一次
//向后臺(tái)發(fā)送處理數(shù)據(jù)
$.ajax({
type: "POST", //用POST方式傳輸
dataType: "text", //數(shù)據(jù)格式:JSON
url: 'Login.php', //目標(biāo)地址
data: "dealType=" + dealType +"&uid=" + uid + "&code=" + code,
error: function (XMLHttpRequest, textStatus, errorThrown) { },
success: function (msg){ }
});
}
//timer處理函數(shù)
function SetRemainTime() {
if (curCount == 0) {
window.clearInterval(InterValObj);//停止計(jì)時(shí)器
$("#btnSendCode").removeAttr("disabled");//啟用按鈕
$("#btnSendCode").val("重新發(fā)送驗(yàn)證碼");
}
else {
curCount--;
$("#btnSendCode").val("請(qǐng)?jiān)?quot; + curCount + "秒內(nèi)輸入驗(yàn)證碼");
}
}
</script>
</head>
<body>
<input id="btnSendCode" type="button" value="發(fā)送驗(yàn)證碼" onclick="sendMessage()" /></p>
</body>
</html>