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 动态选中下拉框
Nov 26 Javascript
JavaScript模拟重力状态下抛物运动的方法
Mar 03 Javascript
使用Object.defineProperty实现简单的js双向绑定
Apr 15 Javascript
基于JS设计12306登录页面
Dec 28 Javascript
JS中from 表单序列化提交的代码
Jan 20 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 jQuery
vue裁切预览组件功能的实现步骤
May 04 Javascript
在vue中使用公共过滤器filter的方法
Jun 26 Javascript
JavaScript fetch接口案例解析
Aug 30 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
Dec 05 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
May 23 Javascript
微信小程序修改数组长度的问题的解决
Dec 17 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
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
Django中多种重定向方法使用详解
2019/07/17 Python
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
罗技美国官网:Logitech美国
2020/01/22 全球购物
医科大学生毕业的自我评价分享
2013/11/12 职场文书
配件采购员岗位职责
2013/12/03 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
大学生创业事迹材料
2014/12/30 职场文书
水电工程师岗位职责
2015/02/13 职场文书
工作能力自我评价2015
2015/03/05 职场文书
道歉情书大全
2015/05/12 职场文书
红高粱观后感
2015/06/10 职场文书
城南旧事观后感
2015/06/11 职场文书
python保存图片的四个常用方法
2022/02/28 Python