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 相关文章推荐
在视频前插入广告
Nov 20 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
Nov 25 Javascript
jquery命令汇总,方便使用jquery的朋友
Jun 26 Javascript
javascript获取下拉列表框当中的文本值示例代码
Jul 31 Javascript
Javascript编程中几种继承方式比较分析
Nov 28 Javascript
jQuery命名空间与闭包用法示例
Jan 12 Javascript
ES6中Proxy代理用法实例浅析
Apr 06 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
Dec 25 jQuery
JavaScript设计模式之装饰者模式定义与应用示例
Jul 25 Javascript
微信小程序webview实现长按点击识别二维码功能示例
Jan 24 Javascript
ElementUI radio组件选中小改造
Aug 12 Javascript
JavaScript闭包原理与用法学习笔记
May 29 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开发文档 会员收费1期
2012/08/14 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
vue实现文件上传读取及下载功能
2020/11/17 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
深圳茁壮笔试题
2015/05/28 面试题
运动会开幕式邀请函
2014/02/03 职场文书
保密承诺书范文
2014/03/27 职场文书
诚信承诺书模板
2014/05/26 职场文书
激励员工的口号
2014/06/16 职场文书
2014年关工委工作总结
2014/11/17 职场文书
早恋主题班会
2015/08/14 职场文书
python模板入门教程之flask Jinja
2022/04/11 Python