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 相关文章推荐
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
Jul 11 Javascript
Javascript 静态页面实现随机显示广告的办法
Nov 17 Javascript
js常用代码段整理
Nov 30 Javascript
Js实现手机发送验证码时按钮延迟操作
Jun 20 Javascript
jquery中添加属性和删除属性
Jun 03 Javascript
Javascript中for循环语句的几种写法总结对比
Jan 23 Javascript
微信小程序自动客服功能
Nov 02 Javascript
jsonp跨域获取数据的基础教程
Jul 01 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
Apr 30 Javascript
layui 解决富文本框form表单提交为空的问题
Oct 26 Javascript
jquery实现垂直手风琴导航栏
Feb 18 jQuery
vue页面引入three.js实现3d动画场景操作
Aug 10 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基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
javascript开发中因空格引发的错误
2010/11/08 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2017/11/27 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
python和bash统计CPU利用率的方法
2015/07/10 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
python 将dicom图片转换成jpg图片的实例
2020/01/13 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
中学生期末评语
2014/02/03 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
吴仁宝观后感
2015/06/09 职场文书
python使用torch随机初始化参数
2022/03/22 Python
使用scrapy实现增量式爬取方式
2022/06/21 Python