jQuery短信验证倒计时功能实现方法详解


Posted in Javascript onMay 25, 2016

本文实例讲述了jQuery短信验证倒计时功能实现方法。分享给大家供大家参考,具体如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>demo 短信验证码60秒,并限制次数</title>
<script src="js/time.js" type="text/javascript"></script>
</head>
<body>
<div class="input">
  <input type="button" id="btn" class="btn_mfyzm" value="获取验证码" />
</div>
</body>
<script>
var wait=60*2;
document.getElementById("btn").disabled = false;
function time(o) {
    if (wait == 0) {
      o.removeAttribute("disabled");
      o.value="免费获取验证码";
      wait = 60*2;
    } else {
      o.setAttribute("disabled", true);
      o.value="重新发送(" + wait + ")";
      wait--;
      setTimeout(function() {
        time(o)
      },
      1000)
    }
  }
document.getElementById("btn").onclick=function(){time(this);}
</script>
</html>

time.js内容如下:

var InterValObj; //timer变量,控制时间
var count = 60; //间隔函数,1秒执行
var curCount;//当前剩余秒数
var code = ""; //验证码
var codeLength = 6;//验证码长度
function sendMessage() {
  curCount = count;
  var dealType; //验证方式
  var uid=$("#uid").val();//用户uid
  if ($("#phone").attr("checked") == true) {
    dealType = "phone";
  }
  else {
    dealType = "email";
  }
  //产生验证码
  for (var i = 0; i < codeLength; i++) {
    code += parseInt(Math.random() * 9).toString();
  }
  //设置button效果,开始计时
    $("#btnSendCode").attr("disabled", "true");
    $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
    InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
  //向后台发送处理数据
    $.ajax({
      type: "POST", //用POST方式传输
      dataType: "text", //数据格式:JSON
      url: 'Login.ashx', //目标地址
      data: "dealType=" + dealType +"&uid=" + uid + "&code=" + code,
      error: function (XMLHttpRequest, textStatus, errorThrown) { },
      success: function (msg){ }
    });
}
//timer处理函数
function SetRemainTime() {
  if (curCount == 0) {
    window.clearInterval(InterValObj);//停止计时器
    $("#btnSendCode").removeAttr("disabled");//启用按钮
    $("#btnSendCode").val("重新发送验证码");
    code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
  }
  else {
    curCount--;
    $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
  }
}

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
Mar 07 Javascript
JavaScript中实现块作用域的方法
Apr 01 Javascript
js获取元素在浏览器中的绝对位置
Jul 24 Javascript
js中的push和join方法使用介绍
Oct 08 Javascript
javascript 兼容各个浏览器的事件
Feb 04 Javascript
浅谈javascript中的call、apply、bind
Mar 06 Javascript
微信公众平台开发教程(五)详解自定义菜单
Dec 02 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
Jan 15 Javascript
详解React Native顶|底部导航使用小技巧
Sep 14 Javascript
微信小程序修改swiper默认指示器样式的实例代码
Jul 18 Javascript
爬虫利器Puppeteer实战
Jan 09 Javascript
JavaScript的查询机制LHS和RHS解析
Aug 16 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
May 25 #Javascript
BootStrap的Datepicker控件使用心得分享
May 25 #Javascript
jquery按回车键实现表单提交的简单实例
May 25 #Javascript
Javascript之BOM(window对象)详解
May 25 #Javascript
jQueryUI中的datepicker使用方法详解
May 25 #Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
May 25 #Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
May 25 #Javascript
You might like
PHP中的类型约束介绍
2015/05/11 PHP
Zend Studio使用技巧两则
2016/04/01 PHP
浅谈PHP进程管理
2019/03/08 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
js确定对象类型方法
2012/03/30 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
2017/07/10 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
gearman的安装启动及python API使用实例
2014/07/08 Python
Python实现查找系统盘中需要找的字符
2015/07/14 Python
深入理解Django中内置的用户认证
2017/10/06 Python
python实现报表自动化详解
2017/11/16 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
详解Python 装饰器执行顺序迷思
2018/08/08 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
使用Html5中的cavas画一面国旗
2019/09/25 HTML / CSS
毕业生在校学习的自我评价分享
2013/10/08 职场文书
自考毕业自我鉴定范文
2013/10/27 职场文书
网站设计师的岗位职责
2013/11/21 职场文书
园艺师求职信
2014/04/27 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
婚育证明格式
2015/06/17 职场文书