javascript发送短信验证码代码

本文首先分析手机发送验证码的原理,再对javascript发送短信验证码予以实现,具体思路如下:
实现点击“发送验证码”按钮后,按钮依次显示为“59秒后重试”、“58秒后重试”…直至倒计时至0秒时再恢复显示为“发送验证码”。在倒计时期间按钮为禁用状态 .

第一步、获取按钮、绑定事件、设置定时器变量和计时变量

第二步、添加定时器,每隔1秒钟计时减 1,直至当计时小于等于 0 时清除定时器,按钮恢复为“发送验证码”,否则显示为“X秒后重试”

效果图:

javascript发送短信验证码代码

实现代码:

<!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></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
/*-------------------------------------------*/
var InterValObj; //timer变量,控制时间
var count = 120; //间隔函数,1秒执行
var curCount;//当前剩余秒数
var code = ""; //验证码
var codeLength = 6;//验证码长度
function sendMessage() {
 curCount = count;
 var phone=$("#phone").val();//手机号码
 if(phone != ""){
  //产生验证码
  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: "phone=" + phone + "&code=" + code,
   error: function (XMLHttpRequest, textStatus, errorThrown) { },
   success: function (msg){ }
  });
 }else{
  alert("手机号码不能为空!");
 }
}
//timer处理函数
function SetRemainTime() {
 if (curCount == 0) {                
  window.clearInterval(InterValObj);//停止计时器
  $("#btnSendCode").removeAttr("disabled");//启用按钮
  $("#btnSendCode").val("重新发送验证码");
  code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效    
 }
 else {
  curCount--;
  $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
 }
}
</script>
</head>
<body> 
<form>
 <div>
  <font color="red">*</font>手机号码:
 </div>
 <div>
  <input type="text" id="phone" name="phone"/>
 </div>
 <div>
  <font color="red">*</font>验证码:
 </div>
 <div>
  <input type="text" id="checkCode" name="checkCode" size="6"/>
  <input id="btnSendCode" type="button" value="发送验证码" onclick="sendMessage()" />
 </div>
</form>
</body>
</html>