• 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

  • 相关阅读:
    android 使用Activity做窗口弹出(模拟Dialog)
    解决ListView 跟ScroolView 共存 listItem.measure(0, 0) 空指针
    基于iview使用jsx扩展成可编辑的表格
    vue token 过期处理
    组件通信 eventtBus
    组件通信 $ref
    组件通信 Provide&&inject
    Vue 生命周期
    layui token 过期 重新登陆
    Python(3) 进制转换
  • 原文地址:https://www.cnblogs.com/silences/p/7235880.html
Copyright © 2020-2023  润新知