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 相关文章推荐
一个很酷的拖动层的js类,兼容IE及Firefox
Jun 23 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
Jul 08 Javascript
JS保留两位小数,多位小数的示例代码
Jan 07 Javascript
jquery修改网页背景颜色通过css方法实现
Jun 06 Javascript
最丑的时钟效果!js canvas时钟制作方法
Aug 15 Javascript
webpack4 css打包压缩问题的解决
May 18 Javascript
详解从Vue-router到html5的pushState
Jul 21 Javascript
详解ES6 系列之异步处理实战
Oct 26 Javascript
Vue批量图片显示时遇到的路径被解析问题
Mar 28 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
May 14 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
Nov 14 Javascript
layui 弹出层值回传解决方式
Nov 14 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
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
PHP 时间转换Unix时间戳代码
2010/01/22 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
Python中生成Epoch的方法
2017/04/26 Python
python中的break、continue、exit()、pass全面解析
2017/08/05 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
python 获取url中的参数列表实例
2018/12/18 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
python 6种方法实现单例模式
2020/12/15 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
建筑班组长岗位职责
2014/01/02 职场文书
安全演讲稿大全
2014/05/09 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python