jquery 實現 點選按鈕後倒數計時效果,多用於實現傳送手機驗證碼、郵箱驗證碼

taogchan發表於2014-01-10

點選(此處)摺疊或開啟

  1. <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">

  2. <html xmlns=\"\">
  3. <head>
  4.     <title></title>
  5.     <script src=\"HTML/js/jquery-1.4.1.min.js\" type=\"text/javascript\"></script>
  6.     <script type=\"text/javascript\">

  7.         /*-------------------------------------------*/
  8.         var InterValObj; //timer變數,控制時間
  9. var count = 5; //間隔函式,1秒執行
  10. var curCount;//當前剩餘秒數
  11. var code = \"\"; //驗證碼
  12. var codeLength = 6;//驗證碼長度
  13. function sendMessage() {
  14.             curCount = count;
  15.             var dealType; //驗證方式
  16. var uid=$(\"#uid\").val();//使用者uid
  17. if ($(\"#phone\").attr(\"checked\") == true) {
  18.                 dealType = \"phone\";
  19.             }
  20.             else {
  21.                 dealType = \"email\";
  22.             }
  23.             //產生驗證碼
  24. for (var i = 0; i < codeLength; i++) {
  25.                 code += parseInt(Math.random() * 9).toString();
  26.             }
  27.             //設定button效果,開始計時
  28.                 $(\"#btnSendCode\").attr(\"disabled\", \"true\");
  29.                 $(\"#btnSendCode\").val(\"請在\" + curCount + \"秒內輸入驗證碼\");
  30.                 InterValObj = window.setInterval(SetRemainTime, 1000); //啟動計時器,1秒執行一次
  31. //向後臺傳送處理資料
  32.                 $.ajax({
  33.                     type: \"POST\", //用POST方式傳輸
  34.                     dataType: \"text\", //資料格式:JSON
  35.                     url: \'Login.ashx\', //目標地址
  36.                     data: \"dealType=\" + dealType +\"&uid=\" + uid + \"&code=\" + code,
  37.                     error: function (XMLHttpRequest, textStatus, errorThrown) { },
  38.                     success: function (msg){ }
  39.                 });
  40.             }
  41.         //timer處理函式
  42. function SetRemainTime() {
  43.             if (curCount == 0) {
  44.                 window.clearInterval(InterValObj);//停止計時器
  45.                 $(\"#btnSendCode\").removeAttr(\"disabled\");//啟用按鈕
  46.                 $(\"#btnSendCode\").val(\"重新傳送驗證碼\");
  47.                 code = \"\"; //清除驗證碼。如果不清除,過時間後,輸入收到的驗證碼依然有效
  48.             }
  49.             else {
  50.                 curCount--;
  51.                 $(\"#btnSendCode\").val(\"請在\" + curCount + \"秒內輸入驗證碼\");
  52.             }
  53.         }
  54.     </script>
  55. </head>
  56. <body>
  57.         <input id=\"btnSendCode\" type=\"button\" value=\"傳送驗證碼\" onclick=\"sendMessage()\" /></p>
  58. </body>
  59. </html>

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22392018/viewspace-1069261/,如需轉載,請註明出處,否則將追究法律責任。

相關文章