js实现手机验证码发送

1.通过ajax手机验证码发送实例

2.为了方便用了jquery需要测试时请先导入jquery包


html部分代码

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="jquery.js" type="text/javascript"></script>
</head>
<body>
	
手机号码:<input type="text" name="phone" id="phone">
<input id="btnSendCode" type="button" value="发送验证码" onclick="sendMessage()" />
<p id='timeshort'></p>

</body>

<script type="text/javascript">
	/*-------------------------------------------*/
	var after ='';
	var InterValObj; //timer变量,控制时间
	var count = 60; //间隔函数,1秒执行
	var curCount = 60;//当前剩余秒数	
	var exp =new Date();
	var time;
	time = exp.getTime();
	
	
		
		//获取cookie值
		function getCookie(name){
			var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
			if(arr=document.cookie.match(reg))
			return unescape(arr[2]);
			else
			return null;
		}

		//这是有设定过期时间的使用示例: 
			//s20是代表20秒 
			//h是指小时,如12小时则是:h12 
			//d是天数,30天则:d30 	
		//设置cookie
		function setCookie(name,value,time){ 
			    var strsec = getsec(time); 
			    var exp = new Date(); 
			    exp.setTime(exp.getTime() + strsec*1); 
			    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 
			} 
			function getsec(str){ 
			   // alert(str); 
			   var str1=str.substring(1,str.length)*1; 
			   var str2=str.substring(0,1); 
			   if (str2=="s")
			   { 
			        return str1*1000; 
			   }
			   else if (str2=="h")
			   { 
			       return str1*60*60*1000; 
			   }
			   else if (str2=="d")
			   { 
			       return str1*24*60*60*1000; 
			   } 
			} 
					
			function sendMessage() {
				if(getCookie('after')>time &&  document.cookie.indexOf('after=') != -1){
					$('#timeshort').html('请不要在60秒内重复获取验证码');	
				}else{
					$('#timeshort').html('');
				}
				trySend();//调用一次		
			 }
			function trySend() {
			 if(getCookie('after')<time || document.cookie.indexOf('after=') == -1 || getCookie('after')==null){
			 	//测试时先注释掉ajax请求代码,否则会不成
			 	 $.ajax({
                        url: "你要请求的路径",
                        type: "get",
                        dataType: "json",
                        data: {'需要传的参数'},
                        success: function (data) {
                            if (data.code == 0) {
                                alert('发送成功');
                            } else {
                                alert(data.msg);
                            }
                        },
                        error: function () {

                        }
                    });

				setCookie("after",time+60*1000,"s60");
				setCookie("phone",$('#phone').val(),"s60");
				curCount = count;
				//设置button效果,开始计时
				$("#btnSendCode").attr("disabled", "true");
				$("#btnSendCode").val(curCount + "秒后重新获取");
				InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
			}
		}	
	//timer处理函数
	function SetRemainTime() {		
		if (curCount == 0) {               
		window.clearInterval(InterValObj);//停止计时器
		$("#btnSendCode").removeAttr("disabled");//启用按钮
		$("#btnSendCode").val("重新发送验证码");
		// code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效   
	} else {
		curCount--;
		$("#btnSendCode").val(curCount + "秒后重新获取");
		}
	}
	</script>

</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值