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图片预加载示例
Apr 30 Javascript
浅谈JavaScript数据类型及转换
Feb 28 Javascript
解决JS请求服务器gbk文件乱码的问题
Oct 16 Javascript
下雪了 javascript实现雪花飞舞
Aug 02 Javascript
JS JSOP跨域请求实例详解
Jul 04 Javascript
Vue.js一个文件对应一个组件实践
Oct 27 Javascript
Javascript实现数组中的元素上下移动
Apr 28 Javascript
原生JavaScript实现todolist功能
Mar 02 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
Apr 01 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
May 15 Javascript
js+html5实现手机九宫格密码解锁功能
Jul 30 Javascript
微信js-sdk 录音功能的示例代码
Nov 01 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 如何获取二维数组中某个key的集合
2014/06/03 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
php-fpm中max_children的配置
2019/03/15 PHP
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
js中int和string数据类型互相转化实例
2019/01/16 Javascript
python检查指定文件是否存在的方法
2015/07/06 Python
python装饰器初探(推荐)
2016/07/21 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
django定期执行任务(实例讲解)
2017/11/03 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
Marc Jacobs官方网站:美国奢侈品牌
2017/08/29 全球购物
UDP协议功能
2013/01/06 面试题
四年的个人工作自我评价
2013/12/10 职场文书
学习两会精神心得范文
2014/03/17 职场文书
《花木兰》教学反思
2014/04/09 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
主婚人致辞精选
2015/07/28 职场文书
班主任培训研修日志
2015/11/13 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
MySQL派生表联表查询实战过程
2022/03/20 MySQL
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android