jQuery短信验证倒计时功能实现方法详解
来源: 阅读:1033 次 日期:2016-06-23 14:49:02
温馨提示: 小编为您整理了“jQuery短信验证倒计时功能实现方法详解”,方便广大网友查阅!

本文实例讲述了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程序设计有所帮助。

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map