Jquery插件实现点击获取验证码后60秒内禁止重新获取


Posted in Javascript onMarch 13, 2015

通过jquery.cookie.js插件可以快速实现“点击获取验证码后60秒内禁止重新获取(防刷新)”的功能

效果图:

Jquery插件实现点击获取验证码后60秒内禁止重新获取

先到官网(http://plugins.jquery.com/cookie/)下载cookie插件,放到相应文件夹,代码如下:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

<title>Examples</title>

<meta name="description" content="">

<meta name="keywords" content="">

<script src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js" ></script>

<script src="jquery.cookie.js" ></script>

<style type="text/css">

    * {margin: 0; padding: 0; font-family: "Microsoft Yahei";}

    .captcha-box {width: 360px; height: 34px; margin: 30px; padding: 30px; border: #956E6F 1px dashed; border-radius: 5px; background-color: #FAF2F2;}

    #mobile { float: left; width: 180px; height: 32px; border: #e5e5e5 1px solid; line-height: 32px; text-indent: 8px; outline: none;}

    #getting {float: left; height: 34px; margin-left: -1px; padding: 0 18px; text-align: center;  line-height: 34px; border: #e5e5e5 1px solid; background: linear-gradient(0deg, #f4f2f2 0%,#fbf9f9 100%); cursor: pointer; outline: none;}

</style>

<script>

    $(function(){

        /*仿刷新:检测是否存在cookie*/

        if($.cookie("captcha")){

            var count = $.cookie("captcha");

            var btn = $('#getting');

            btn.val(count+'秒后可重新获取').attr('disabled',true).css('cursor','not-allowed');

            var resend = setInterval(function(){

                count--;

                if (count > 0){

                    btn.val(count+'秒后可重新获取').attr('disabled',true).css('cursor','not-allowed');

                    $.cookie("captcha", count, {path: '/', expires: (1/86400)*count});

                }else {

                    clearInterval(resend);

                    btn.val("获取验证码").removeClass('disabled').removeAttr('disabled style');

                }

            }, 1000);

        }

        /*点击改变按钮状态,已经简略掉ajax发送短信验证的代码*/

        $('#getting').click(function(){

            var btn = $(this);

            var count = 60;

            var resend = setInterval(function(){

                count--;

                if (count > 0){

                    btn.val(count+"秒后可重新获取");

                    $.cookie("captcha", count, {path: '/', expires: (1/86400)*count});

                }else {

                    clearInterval(resend);

                    btn.val("获取验证码").removeAttr('disabled style');

                }

            }, 1000);

            btn.attr('disabled',true).css('cursor','not-allowed');

        });

    });

</script>

</head>

<body>

    <div class="captcha-box">

        <input type="text" id="mobile" maxlength="11" placeholder="请输入手机号码">

        <input type="button" id="getting" value="获取验证码">

    </div>

</body>

</html>

以上就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
WEB 浏览器兼容 推荐收藏
May 14 Javascript
js实现的牛顿摆效果
Mar 31 Javascript
使用impress.js制作幻灯片
Sep 09 Javascript
如何用angularjs制作一个完整的表格
Jan 21 Javascript
jquery判断类型是不是number类型的实例代码
Oct 07 Javascript
JavaScript仿聊天室聊天记录
Dec 27 Javascript
js中的事件委托或是事件代理使用详解
Jun 23 Javascript
JavaScript类型相关的常用操作总结
Feb 14 Javascript
深入浅析vue中cross-env的使用
Sep 12 Javascript
构建大型 Vue.js 项目的10条建议(小结)
Nov 14 Javascript
JavaScript定时器使用方法详解
Mar 26 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
Sep 17 Javascript
node.js [superAgent] 请求使用示例
Mar 13 #Javascript
JavaScript中逗号运算符介绍及使用示例
Mar 13 #Javascript
JavaScript原生对象之String对象的属性和方法详解
Mar 13 #Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 #Javascript
JavaScript原生对象之Number对象的属性和方法详解
Mar 13 #Javascript
JavaScript原生对象之Date对象的属性和方法详解
Mar 13 #Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
Mar 13 #Javascript
You might like
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
python调试神器PySnooper的使用
2019/07/03 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
英国汽车零件购物网站:GSF Car Parts
2019/05/23 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
澳大利亚顶级美发和美容贸易超市:glamaCo
2020/01/19 全球购物
巴西本土电商平台:Americanas
2020/06/21 全球购物
幼儿园大班开学教师寄语
2014/04/03 职场文书
事业单位鉴定材料
2014/05/25 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
2016党校培训心得体会
2016/01/07 职场文书
60句有关成长的名言
2019/09/04 职场文书
alibaba seata服务端具体实现
2022/02/24 Java/Android