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 相关文章推荐
优化网页之快速的呈现我们的网页
Jun 29 Javascript
JavaScript 提升运行速度之循环篇 译文
Aug 15 Javascript
$.extend 的一个小问题
Jun 18 Javascript
常用jQuery代码分享
Jul 14 Javascript
Javascript简单改变表单元素背景的方法
Jul 15 Javascript
Jquery操作cookie记住用户名
Mar 29 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
Jan 11 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
Jan 12 Javascript
详解vue过滤器在v2.0版本用法
Jun 01 Javascript
vue项目打包后打开页面空白解决办法
Jun 29 Javascript
Vue框架TypeScript装饰器使用指南小结
Feb 18 Javascript
微信小程序实现拨打电话功能的示例代码
Jun 28 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
Yii中创建自己的Widget实例
2016/01/05 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
Python基于回溯法子集树模板解决m着色问题示例
2017/09/07 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
2018/11/30 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
python中对_init_的理解及实例解析
2019/10/11 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
PPP协议组成及简述协议协商的基本过程
2015/05/28 面试题
挑战杯创业计划书的写作指南
2014/01/07 职场文书
出国英文推荐信
2014/05/10 职场文书
诚信贷款承诺书
2014/05/30 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
感谢信范文大全
2015/01/23 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
学术会议领导致辞
2015/07/29 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android