麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

js實現發送驗證碼后的倒計時功能

2024-05-06 16:20:59
字體:
來源:轉載
供稿:網友

本文解決方案的基本思路是點擊就將按鈕設為disabled,然后根據cookie判斷是否設置過期時間,將手機利用ajax提交到后臺的發短信接口,就可以了

之前分享過只用js實現倒計時的功能,后來測試時發現,刷新或關閉網頁后,倒計時就不能用了.網上也沒找到合適的解決方案,所以自己就寫了個,這次的算是優化版吧,能滿足刷新或重新打開網頁后,倒計時依然能用

特別說明:

cookie最初創建的有效時間是60秒.也就是說,你如果在倒計時為20的時候,關閉網頁.20秒之后再打開,是不會有倒計時顯示的;但是,如果倒計時為20時,關閉頁面,如果在20秒內重新打開頁面,是有倒計時顯示的.

html代碼

 

 
  1. <input id="second" type="button" value="免費獲取驗證碼" /> 

js對cookie的操作

 

 
  1. //發送驗證碼時添加cookie 
  2. function addCookie(name,value,expiresHours){  
  3. var cookieString=name+"="+escape(value);  
  4. //判斷是否設置過期時間,0代表關閉瀏覽器時失效 
  5. if(expiresHours>0){  
  6. var date=new Date();  
  7. date.setTime(date.getTime()+expiresHours*1000);  
  8. cookieString=cookieString+";expires=" + date.toUTCString();  
  9. }  
  10. document.cookie=cookieString;  
  11. }  
  12. //修改cookie的值 
  13. function editCookie(name,value,expiresHours){  
  14. var cookieString=name+"="+escape(value);  
  15. if(expiresHours>0){  
  16. var date=new Date();  
  17. date.setTime(date.getTime()+expiresHours*1000); //單位是毫秒 
  18. cookieString=cookieString+";expires=" + date.toGMTString();  
  19. }  
  20. document.cookie=cookieString;  
  21. }  
  22. //根據名字獲取cookie的值 
  23. function getCookieValue(name){  
  24. var strCookie=document.cookie;  
  25. var arrCookie=strCookie.split("; ");  
  26. for(var i=0;i<arrCookie.length;i++){  
  27. var arr=arrCookie[i].split("=");  
  28. if(arr[0]==name){ 
  29. return unescape(arr[1]); 
  30. break
  31. }else
  32. return "";  
  33. break
  34. }  
  35. }  
  36.  

主要邏輯代碼

 

 
  1. $(function(){ 
  2. $("#second").click(function (){ 
  3. sendCode($("#second")); 
  4. }); 
  5. v = getCookieValue("secondsremained");//獲取cookie值 
  6. if(v>0){ 
  7. settime($("#second"));//開始倒計時 
  8. }) 
  9. //發送驗證碼 
  10. function sendCode(obj){ 
  11. var phonenum = $("#phonenum").val(); 
  12. var result = isPhoneNum(); 
  13. if(result){ 
  14. doPostBack('${base}/login/getCode.htm',backFunc1,{"phonenum":phonenum}); 
  15. addCookie("secondsremained",60,60);//添加cookie記錄,有效時間60s 
  16. settime(obj);//開始倒計時 
  17. //將手機利用ajax提交到后臺的發短信接口 
  18. function doPostBack(url,backFunc,queryParam) { 
  19. $.ajax({ 
  20. async : false
  21. cache : false
  22. type : 'POST'
  23. url : url,// 請求的action路徑 
  24. data:queryParam, 
  25. error : function() {// 請求失敗處理函數 
  26. }, 
  27. success : backFunc 
  28. }); 
  29. function backFunc1(data){ 
  30. var d = $.parseJSON(data); 
  31. if(!d.success){ 
  32. alert(d.msg); 
  33. }else{//返回驗證碼 
  34. alert("模擬驗證碼:"+d.msg); 
  35. $("#code").val(d.msg); 
  36. //開始倒計時 
  37. var countdown; 
  38. function settime(obj) {  
  39. countdown=getCookieValue("secondsremained"); 
  40. if (countdown == 0) {  
  41. obj.removeAttr("disabled");  
  42. obj.val("免費獲取驗證碼");  
  43. return
  44. else {  
  45. obj.attr("disabled"true);  
  46. obj.val("重新發送(" + countdown + ")");  
  47. countdown--; 
  48. editCookie("secondsremained",countdown,countdown+1); 
  49. }  
  50. setTimeout(function() { settime(obj) },1000) //每1000毫秒執行一次 
  51. }  
  52. //校驗手機號是否合法 
  53. function isPhoneNum(){ 
  54. var phonenum = $("#phonenum").val(); 
  55. var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+/d{8})$/;  
  56. if(!myreg.test(phonenum)){  
  57. alert('請輸入有效的手機號碼!');  
  58. return false;  
  59. }else
  60. return true

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 91精品国产九九九久久久亚洲 | 爱高潮www亚洲精品 国产精品一区自拍 | 成人国产精品色哟哟 | 国产色爱综合网 | av成人一区二区 | 蜜桃av鲁一鲁一鲁一鲁 | 99在线精品视频免费观看20 | 国av在线| a网站在线 | 精品一区二区三区欧美 | 中文字幕综合在线观看 | 九九热视频这里只有精品 | 竹内纱里奈和大战黑人 | 成人国产精品免费 | 草久视频在线观看 | 色99久久 | 久草在线高清视频 | 特级黄一级播放 | 国产一区二区三区色淫影院 | 亚洲人成在线播放网站 | 草草视频免费观看 | 在线观看va | asian裸体佳人pics| 无码专区aaaaaa免费视频 | 九九热在线观看视频 | 在线免费观看麻豆 | 欧美日韩成人一区二区 | 欧美精品国产综合久久 | 久久精品日产高清版的功能介绍 | 三级国产三级在线 | 成人电影毛片 | 国产福利视频在线观看 | 羞羞答答影院 | 国产精品久久久久久久不卡 | 中文字幕免费一区 | 夜间福利网站 | 久久国产精品一区 | 欧美五月婷婷 | 久久久一区二区 | 亚洲爱爱网站 | 国产一级毛片高清视频完整版 |