博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery 发送短信验证码 倒计时功能(页面关闭也照常进行倒计时)
阅读量:5916 次
发布时间:2019-06-19

本文共 2970 字,大约阅读时间需要 9 分钟。

hot3.png

今天测试提了一个bug,发送短信倒计时功能,要求关闭页面也要进行倒计时。这想到了,当年我参与的周杰伦演唱会的先付先抢功能。与之类似,只不过,那个项目的时间都是服务器时间,本人目前有点偷懒,就用客户端的时间了。

一下是完整的代码,只不过在客户端的效率不是很好。

<!doctype html>

<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <script src="http://cdn.bootcss.com/jquery/3.1.0/jquery.js"></script>
  <script src="http://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
  
  <!--<script src="jquery.min.js"></script>-->
 <!-- <script src="jquery.cookie.js"></script>-->
 <!-- <script src="//cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>-->
 </head>
 <body>
 <input id="memberTel" type="text" value="18518181818"/>
  <input id="code_btn" type="button"  value="免费获取验证码"  />
 </body>

 <script>

$(function(){    checkCountdown();    $("#code_btn").click(function (){        if(count_down > 0){            return;        }        sendCode($("#code_btn"));    });})//校验打开页面的时候是否要继续倒计时function checkCountdown(){    var secondsremained =     $.cookie("secondsremained");    if(secondsremained){        var date = new Date(unescape(secondsremained));        setCoutDown(date,$("#code_btn"));    }}//发送验证码function sendCode(obj){    var result = isPhoneNum();    if(result){        //加载ajax 获取验证码的方法        getCaptcha();        var date = new Date();        addCookie("secondsremained",date.toGMTString(),60);//添加cookie记录,有效时间60s        setCoutDown(date,obj);    }}var nowDate = null;var time_difference = 0;var count_down = 0;function setCoutDown(date,obj) {    nowDate = new Date();    time_difference = ((nowDate- date)/1000).toFixed(0);    count_down = 60 - time_difference;    console.log(count_down);    if(count_down<=0){        obj.removeAttr("disabled");        obj.removeClass("code_grey");        obj.html("获取验证码");        obj.val("获取验证码");        addCookie("secondsremained","",60);//添加cookie记录,有效时间60s        return;    }    obj.attr("disabled", true);    obj.addClass("code_grey");    obj.html(count_down + "秒后重发");    obj.val(count_down + "秒后重发");    setTimeout(function() { setCoutDown(date,obj) },1000) //每1000毫秒执行一次}//发送验证码时添加cookiefunction addCookie(name,value,expiresHours){    //判断是否设置过期时间,0代表关闭浏览器时失效    if(expiresHours>0){        var date=new Date();        date.setTime(date.getTime()+expiresHours*1000);        $.cookie(name, escape(value), {expires: date});    }else{        $.cookie(name, escape(value));    }}//校验手机号是否合法function isPhoneNum(){    var mobile = $("#memberTel").val();    if($.trim(mobile) =="" || !(/^1[3|4|5|7|8]\d{9}$/.test(mobile))){        tooltip().show('提示','请输入正确手机号码');        return false;    }    return true;}function getCaptcha(){    $.ajax({        type: 'GET',        url: basePath + '/getcaptcha',        data: {            "mobile":mobile        },        async: false,        dataType: "json",    });}

 </script>
</html>

转载于:https://my.oschina.net/u/2325281/blog/741283

你可能感兴趣的文章
记一次灰产创业史
查看>>
牛客小白月赛4 I 合唱队形 思维 字符串
查看>>
MongoDB 更新文档
查看>>
python lambda的详细介绍
查看>>
Qtpy5 各个模块的作用
查看>>
关于一个单词统计的报告
查看>>
iOS判断是否登录 模型
查看>>
微信定时发送天气python3
查看>>
java继承3个小题
查看>>
初次运行 Git 前的配置
查看>>
Golang Context 详细介绍
查看>>
关于炉石传说的NGUI问题
查看>>
Python入门
查看>>
vue适配移动端px自动转化为rem
查看>>
hadoop 搭建3节点集群,遇到Live Nodes显示为0时解决办法
查看>>
tar 打包带软连接的文件
查看>>
DFS剪枝,最大团,POJ(1419)
查看>>
LeetCode 57: Insert Interval
查看>>
外网zabbix-server使用主动模式监控公司内网windows服务器
查看>>
Gitlab_ansible_jenkins三剑客④jenkins安装图解及freestyle的简单使用
查看>>