1. 程式人生 > 實用技巧 >JS 實現傳送驗證碼效果

JS 實現傳送驗證碼效果

程式碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        button {
            height: 50px;
            font-size: 18px
; line-height: 50px; color: #fff; background: red; } </style> </head> <body> <button>傳送驗證碼</button> <script> //1.獲取元素 var btn = document.getElementsByTagName("button")[0]; //4.宣告一個狀態變數 記錄按鈕的狀態
var flag = "active"; //2.新增點選事件 btn.onclick = function(){ //將倒計時的變數 宣告在點選事件中 這樣每次點選之後 就可以將變數的值重置 var n = 10; //3.按鈕存在兩種狀態 啟用態 禁用態 //如果是啟用態 if(flag == "active"){ //讓按鈕 背景變灰, 內容換成 已傳送(ns後重新發送) btn.style.background
= "gray"; btn.innerHTML = "已傳送("+n+"s後重新發送)"; //修改狀態 flag = "disabled"; //設定間歇定時器 進行倒計時 var timer = setInterval(function(){ n--; if(n<0){ clearInterval(timer); //將 內容 重新改回 傳送驗證碼 btn.innerHTML = "傳送驗證碼"; btn.style.cssText = "";//幹掉行內樣式 重新使用 非行內樣式 //改回來 狀態 flag = "active"; //阻斷函式的執行 return false; } btn.innerHTML = "已傳送("+n+"s後重新發送)"; },1000) } else{//如果是禁用態 return false; } } </script> </body> </html>