仿手機傳送驗證碼,並在59秒後重試

主見的筆記發表於2020-11-20

放手機傳送驗證碼:

先看效果圖:

在這裡插入圖片描述

核心思路如下:

  1. 監聽事件
  2. 點選按鈕後 按鈕不可點選
  3. 新增定時器:
    若時間為零 清除定時器 恢復按鈕、內容、時間
    若不為零 更新文字內容 依次減少時間

全部程式碼如下:

    <div class="box">
        請輸入您的手機號碼:<input type="number">&nbsp;<button class="sent">獲取驗證碼</button>
    </div>
    <script>
        var myBtn = document.querySelector('.sent');
        var getTime = 59;//設定重新獲取驗證碼的時間
        //監聽事件
        myBtn.addEventListener('click',function () {
            //點選按鈕後 按鈕不可點選
            myBtn.disabled = true;
            //新增定時器
            var timer = setInterval(function () {
                //若時間為零 清除定時器 恢復按鈕、內容、時間
                //若不為零 更新文字內容 依次減少時間
                if (getTime == 0){
                    clearInterval(timer);
                    myBtn.disabled = false;
                    myBtn.innerHTML = '獲取驗證碼';
                    getTime = 59;
                } else {
                    myBtn.innerHTML = '請'+ getTime +'秒後重新獲取驗證碼';
                    getTime--;
                }
            },1000);
        })
    </script>

相關文章