前端手机验证码cookie存储
注册的时候经常会有手机验证码的输入这个环节,在第一次点击发送了验证码只后,比如倒计时只走了10秒钟,然后刷新的话,倒计时要还是存在的,这个时候就要有一个cookie的存在了。
html的代码
1 <input type="button" id="second" value="获取验证码"/>
js代码
1 <!--逻辑功能代码 --> 2 <script> 3 //发送验证码时添加cookie 4 function addCookie(name, value, expiresHours) { 5 var cookieString = name + "=" + encodeURI(value); 6 //判断是否设置过期时间,0代表关闭浏览器时失效 7 if (expiresHours > 0) { 8 var date = new Date(); 9 date.setTime(date.getTime() + expiresHours * 1000); 10 cookieString = cookieString + ";expires=" + date.toUTCString(); 11 } 12 document.cookie = cookieString; 13 14 } 15 //修改cookie的值 16 function editCookie(name, value, expiresHours) { 17 var cookieString = name + "=" + encodeURI(value) 18 if (expiresHours > 0) { 19 var date = new Date(); 20 date.setTime(date.getTime() + expiresHours * 1000); //单位是毫秒 21 cookieString = cookieString + ";expires=" + date.toGMTString(); 22 } 23 document.cookie = cookieString; 24 } 25 //根据名字获取cookie的值 26 function getCookieValue(name) { 27 var strCookie = document.cookie; 28 var arrCookie = strCookie.split("; "); 29 for (var i = 0; i < arrCookie.length; i++) { 30 var le = arrCookie.length -1; 31 var arr = arrCookie[i].split("="); 32 if (arr[0] == name) { 33 return decodeURI(arr[1]); 34 break; 35 } else { 36 return ""; 37 break; 38 } 39 } 40 } 41 $(function () { 42 $("#second").click(function () { 43 sendCode($("#second")); 44 }); 45 v = getCookieValue("secondsremained");//获取cookie值 46 if (v > 0) { 47 settime($("#second"));//开始倒计时 48 } 49 }) 50 //发送验证码 51 function sendCode(obj) { 52 var phone_1 = $("#phone_1").val(); 53 var result = isPhoneNum(); //判断手机号码是不是正确的 54 if (result) { 55 var code_1 = $('#code_1').val(); 56 if (code_1) { 57 doPostBack('<?php echo url(U . 'index.php?a=index/User/sms'); ?>', backFunc1, {"phone_1": phone_1, "code": code_1}); 58 addCookie("secondsremained", 60, 60);//添加cookie记录,有效时间60s 59 settime(obj);//开始倒计时 60 } else { 61 alert('请输入验证码!'); 62 return false; 63 } 64 } 65 } 66 //将手机利用ajax提交到后台的发短信接口 67 function doPostBack(url, backFunc, queryParam) { 68 $.ajax({ 69 async: false, 70 cache: false, 71 type: 'POST', 72 url: url, // 请求的action路径 73 data: queryParam, 74 error: function () {// 请求失败处理函数 75 }, 76 success: backFunc //请求成功处理函数 77 }); 78 } 79 function backFunc1(data) { 80 //请求成功的函数处理 88 } 89 //开始倒计时 90 var countdown; 91 function settime(obj) { 92 countdown = getCookieValue("secondsremained"); 93 if (countdown == 0) { 94 obj.removeAttr("disabled"); //添加不可以再点击事件 95 obj.val("获取验证码"); 96 return; 97 } else { 98 obj.attr("disabled", true); 99 obj.val("重新发送(" + countdown + ")"); 100 countdown--; 101 editCookie("secondsremained", countdown, countdown + 1); 102 } 103 setTimeout(function () { 104 settime(obj) 105 }, 1000) //每1000毫秒执行一次 106 } 107 //校验手机号是否合法 108 function isPhoneNum() { 109 var phone_1 = $("#phone_1").val(); 110 var myreg = /^1[34578]\d{9}$/; 111 if (!myreg.test(phone_1)) { 112 alert('请输入有效的手机号码!'); 113 return false; 114 } else { 115 return true; 116 } 117 } 118 119 }); 120 </script>
浩楠哥