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 相关文章推荐
jQuery移动和复制dom节点实用DOM操作案例
Dec 17 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
Nov 22 Javascript
js实现单行文本向上滚动效果实例代码
Nov 28 Javascript
Jquery插件编写简明教程
Mar 25 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
Jan 18 Javascript
浅谈js中的引用和复制(传值和传址)
Sep 18 Javascript
js实现文字无缝向上滚动
Feb 16 Javascript
对Angular中单向数据流的深入理解
Mar 31 Javascript
详解基于electron制作一个node压缩图片的桌面应用
Jan 29 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
Jun 17 Javascript
JS数组的高级使用方法示例小结
Mar 14 Javascript
解决node终端下运行js文件不支持ES6语法
Apr 04 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
神族 Protoss 历史背景
2020/03/14 星际争霸
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
PHP 图像尺寸调整代码
2010/05/26 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
jQuery textarea的长度进行验证
2009/05/06 Javascript
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
海量经典的jQuery插件集合
2010/01/12 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
python类和继承用法实例
2015/07/07 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
婚前保证书
2014/04/29 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
工伤私了协议书范本
2014/11/24 职场文书
刮痧观后感
2015/06/05 职场文书
仓库管理制度范本
2015/08/04 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL