這篇文章主要介紹了純js實現重發驗證碼按鈕倒數功能,本文整理了兩個實現代碼,需要的朋友可以參考下
代碼一:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <!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> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無標題文檔</title> <script type="text/javascript" src="js/jquery.js"></script> </head> <body> <input type="button" id="btn" value="免費獲取驗證碼" onclick="settime(this)" /> <script type="text/javascript"> var countdown=60; function settime(val) { if (countdown == 0) { val.removeAttribute("disabled"); val.value="免費獲取驗證碼"; countdown = 60; } else { val.setAttribute("disabled", true); val.value="重新發送(" + countdown + ")"; countdown--; } setTimeout(function() { settime(val) },1000) } </script> </body> </html>代碼二:
注冊的時候需要發送驗證激活帳號的郵件,為了避免郵件的多次重復發送,所以可以在點擊了發送後,設置button要過一段時間才能繼續點擊。下面是一個簡單的例子:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <html> <head> <title>點擊獲取驗證碼按鈕後按鈕變灰,倒計時一段時間後又可重復點擊</title> </head> <body> <input type="button" id="btn" value="免費獲取驗證碼" /> <script type="text/javascript"> var wait=60; function time(o) { if (wait == 0) { o.removeAttribute("disabled"); o.value="免費獲取驗證碼"; wait = 60; } else { o.setAttribute("disabled", true); o.value=wait+"秒後可以重新發送"; wait--; setTimeout(function() { time(o) }, 1000) } } document.getElementById("btn").onclick=function(){time(this);} </script> </body> </html>