風信建站項目開發中應用到發送手機短信進行驗證的功能性開發,為提升用戶的體驗,一般會在發送驗證碼之后,按鈕處理禁用狀態,并開始進入倒計時,倒計時結速之后用戶才可以再次發送驗證碼,這種交互式的功能對于新注冊用戶是非常有用的,能有效的提升用戶的注冊體驗,今天風信建站將此功能代碼分享給大家:
說明:采用Ajax進行數據驗證,并加了一下定時器在html結構中進行倒計時。
說明:采用Ajax進行數據驗證,并加了一下定時器在html結構中進行倒計時。
<!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變量,控制時間
var count = 5; //間隔函數,1秒執行
var curCount;//當前剩余秒數
function sendMessage() {
curCount = count;
//設置button效果,開始計時
$("#btnSendCode").attr("disabled", "true");
$("#btnSendCode").val("請在" + curCount + "秒內輸入驗證碼");
InterValObj = window.setInterval(SetRemainTime, 1000); //啟動計時器,1秒執行一次
//向后臺發送處理數據
$.ajax({
type: "POST", //用POST方式傳輸
dataType: "text", //數據格式:JSON
url: 'Login.php', //目標地址
data: "dealType=" + dealType +"&uid=" + uid + "&code=" + code,
error: function (XMLHttpRequest, textStatus, errorThrown) { },
success: function (msg){ }
});
}
//timer處理函數
function SetRemainTime() {
if (curCount == 0) {
window.clearInterval(InterValObj);//停止計時器
$("#btnSendCode").removeAttr("disabled");//啟用按鈕
$("#btnSendCode").val("重新發送驗證碼");
}
else {
curCount--;
$("#btnSendCode").val("請在" + curCount + "秒內輸入驗證碼");
}
}
</script>
</head>
<body>
<input id="btnSendCode" type="button" value="發送驗證碼" onclick="sendMessage()" /></p>
</body>
</html>