• 发送短信验证(防刷新)


    
    
    //防止页面刷新倒计时失效
    function monitor(obj) {
    var LocalDelay = getLocalDelay();
    var timeLine = parseInt((new Date().getTime() - LocalDelay.time) / 1000);
    if (timeLine > LocalDelay.delay) {
    console.log("过期");
    } else {
    _delay = LocalDelay.delay - timeLine;
    obj.text(_delay+'s').addClass("btn-disabled").removeClass('send-btn');
    var timer = setInterval(function() {
    if (_delay > 1) {
    _delay--;
    obj.text(_delay+'s');
    setLocalDelay(_delay);
    } else {
    clearInterval(timer);
    obj.text("发送验证码").removeClass("btn-disabled").addClass('send-btn');
    }
    }, 1000);
    }
    };
    //倒计时效果
    /**
    * @param {Object} obj 获取验证码按钮
    * @param {Function} callback 获取验证码接口函数
    */
    function countDown(obj, callback) {
    if (obj.text() == "发送验证码") {
    var _delay = 60;
    var delay = _delay;
    // 按钮禁用
    obj.text(_delay+'s').addClass("btn-disabled").removeClass('send-btn');
    var timer = setInterval(function() {
    if (delay > 1) {
    delay--;
    obj.text(delay+'s');
    setLocalDelay(delay);
    } else {
    clearInterval(timer);
    // 恢复按钮禁用状态
    obj.text("发送验证码").removeClass("btn-disabled").addClass('send-btn');
    }
    }, 1000);

    callback();
    } else {
    return false;
    }
    }
    //设置setLocalDelay
    function setLocalDelay(delay) {
    //location.href作为页面的唯一标识,可能一个项目中会有很多页面需要获取验证码。
    localStorage.setItem("delay_" + location.href, delay);
    localStorage.setItem("time_" + location.href, new Date().getTime());
    }
    //getLocalDelay()
    function getLocalDelay() {
    var LocalDelay = {};
    LocalDelay.delay = localStorage.getItem("delay_" + location.href);
    LocalDelay.time = localStorage.getItem("time_" + location.href);
    return LocalDelay;
    }

    //****************************获取验证码的 点击事件*************************************
    //***********************************************************************************
    var btn = document.getElementById("getCode");
    //调用监听
    monitor($(btn));
    //点击click

    btn.onclick = function() {
    //倒计时效果 getCode回调函数 获取验证码api
    countDown($(btn), getCode);
    };

    function getCode() {
    $.get("", function(data) {
    if (data.state ==0) {

    } else {

    }
    });
    }
     
  • 相关阅读:
    java中获取类资源的不同姿势
    Jdk动态代理与Cglib动态代理
    Spring AOP
    Spring Ioc、DI
    windows 8.1 专业版 visual stuido 2015 安装失败
    win7 共享需要密码问题
    protobuffer .net 序列化
    【转载】SQL Server 2005数据库用户权限管理的设置
    【转载】mongoDB基本使用手册
    【转载】Thread.sleep(0)的意义
  • 原文地址:https://www.cnblogs.com/duanyue/p/6945269.html
Copyright © 2020-2023  润新知