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 相关文章推荐
js报错 Object doesn't support this property or method的原因分析
Mar 31 Javascript
简介JavaScript中valueOf()方法的使用
Jun 05 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
Mar 06 Javascript
AngularJS实现Input格式化的方法
Nov 07 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
Dec 29 Javascript
bootstrap滚动监控器使用方法解析
Jan 13 Javascript
angularJs中datatable实现代码
Jun 03 Javascript
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
JavaScript实用代码小技巧
Aug 23 Javascript
一个因@click.stop引发的bug的解决
Jan 08 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
Aug 26 Javascript
Vue实现页面添加水印功能
Nov 09 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
Smarty Foreach 使用说明
2010/03/23 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
js 操作select和option常用代码整理
2012/12/13 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
JavaScript弹窗基础篇
2016/04/27 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
微信分享invalid signature签名错误踩过的坑
2020/04/11 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
python支持断点续传的多线程下载示例
2014/01/16 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
商务专员岗位职责
2013/11/23 职场文书
单位领导证婚词
2014/01/14 职场文书
大三毕业自我鉴定
2014/01/15 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
黑白记忆观后感
2015/06/18 职场文书
毕业设计工作总结
2015/08/14 职场文书
教师学习中国梦心得体会
2016/01/05 职场文书
电工实训心得体会
2016/01/14 职场文书
Python编写冷笑话生成器
2022/04/20 Python