zoukankan      html  css  js  c++  java
  • js短信验证码倒计时(页面刷新无效)

    实现思路通过添加cookie来实现刷新无效

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/jquery-1.11.2.min.js"></script>
        <script src="js/js.js"></script>
    
    </head>
    <body>
    <div>
        <input type="button" id="obtain-code" value="获取验证码" class="obtain-code">
    </div>
    <script>
        $(function () {
            var countdown = 60;
            var cookie = getCookie("countdown");
            if (cookie != undefined) {
                jx.identifyingCode(countdown - parseInt((new Date().getTime() - cookie) / 1000));
            }
            $("#obtain-code").click(function () {
                addCookie("countdown", new Date().getTime(), countdown);
                jx.identifyingCode(countdown);
            })
        })
    </script>
    </body>
    </html>
    /**
     * Created by Administrator on 2017/7/25.
     */
    var jx = {
        identifyingCode: function () {
            var e = {
                wait: arguments[0] ? arguments[0] : 60,
                showText: arguments[1] ? arguments[1] : "再次获取验证码",
                dynamicText: arguments[2] ? arguments[2] : "秒后再次获取",
                nextDynamicText: arguments[3] ? arguments[3] : "",
                hsTime: function (e) {
                    if (t = $(this), 0 == this.wait) $(e).removeAttr("disabled").val(this.showText).removeClass("disabled").addClass("enable"), t.wait = this.wait; else {
                        var t = this;
    
                        $(e).prop("disabled", !0).val(this.nextDynamicText + t.wait + " " + this.dynamicText).removeClass("enable").addClass("disabled"), this.wait--, setTimeout(function () {
                            t.hsTime(e)
                        }, 1e3)
                    }
                }
            };
            e.hsTime(".obtain-code")
        }
    };
    function addCookie(name, value, expiresHours) {
        var cookieString = name + "=" + escape(value);
        //判断是否设置过期时间,0代表关闭浏览器时失效
        if (expiresHours > 0) {
            var date = new Date();
            date.setTime(date.getTime() + expiresHours * 1000);
            cookieString = cookieString + ";expires=" + date.toUTCString();
        }
        document.cookie = cookieString;
    }
    
    //根据名字获取cookie的值
    function getCookie(name) {
        var strCookie = document.cookie;
        var arrCookie = strCookie.split("; ");
        for (var i = 0; i < arrCookie.length; i++) {
            var arr = arrCookie[i].split("=");
            if (arr[0] == name) {
                return unescape(arr[1]);
                break;
            }
        }
    
    }
    //删除cookies
    function delCookie(name) {
        var exp = new Date();
        exp.setTime(exp.getTime() - 1);
        var cval = getCookieValue(name);
        if (cval != null)
            document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
    }

     完成代码下载

    http://download.csdn.net/detail/u012192657/9910391

  • 相关阅读:
    VC++ 常用数学函数
    Skin++的使用 (成功在vs2008试过)
    解决switch使用String做参数 (jdk1.7新增),更改jdk版本后报错的问题
    [转]jdk1.7中 新增 switch 使用String 做参数 的实现
    [转]网页版Firebug
    [转]Eclipse导入工程后,XDoclet错误:Missing library: xdoclet1.2.1.jar. Select the home directory for XDoclet. 1.
    SAP related blogs
    [转]SAP FI/CO 模块设置
    如何调用BADI
    [转]一则关于ABAP程序员的趣谈
  • 原文地址:https://www.cnblogs.com/silences/p/7235880.html
Copyright © 2011-2022 走看看