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 相关文章推荐
javascript + jquery实现定时修改文章标题
Mar 19 Javascript
javascript记录文本框内文字个数检测文字个数变化
Oct 14 Javascript
jQuery实现瀑布流布局
Dec 12 Javascript
JavaScript每天定时更换皮肤样式的方法
Jul 01 Javascript
详解javascript事件绑定使用方法
Oct 20 Javascript
AngularJS指令与指令之间的交互功能示例
Dec 14 Javascript
如何制作幻灯片(代码分享)
Jan 06 Javascript
基于JS实现翻书效果的页面切换样式
Feb 16 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
Sep 27 Javascript
jquery实现有过渡效果的tab切换
Jul 17 jQuery
在Vue 中实现循环渲染多个相同echarts图表
Jul 20 Javascript
记录一次websocket封装的过程
Nov 23 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
php扩展ZF――Validate扩展
2008/01/10 PHP
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
JavaScript 事件对象的实现
2009/07/13 Javascript
优化 JavaScript 代码的方法小结
2009/07/16 Javascript
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
在JavaScript中重写jQuery对象的方法实例教程
2014/08/25 Javascript
ubuntu下安装nodejs以及升级的办法
2015/05/08 NodeJs
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
js css实现垂直方向自适应的三角提示菜单
2016/06/26 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
js实现打字小游戏
2019/12/17 Javascript
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
python爬虫的工作原理
2017/03/05 Python
Python利用matplotlib生成图片背景及图例透明的效果
2017/04/27 Python
windows下python连接oracle数据库
2017/06/07 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
python如何处理程序无法打开
2020/06/16 Python
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
党支部活动策划方案
2014/08/18 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript