正则校验手机号码并获取手机验证码倒计时的实例

最近在做一个微信外卖的商城,里面涉及到了了一个登录界面。对首次使用的朋友要获取手机验证码来登陆我们的外卖平台,话不多说直接看demo。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</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>
<script src="js/jquery.min.js"></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(checkPhone()){
//产生验证码
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 + "秒内输入六位验证码");
}
}
//正则校验
function checkPhone(){
var phone = document.getElementById('phone').value;
if(!(/^1[3|4|5|7|8]\d{9}$/.test(phone))){
alert("请仔细核对自己的号码哦");
return false;
}
}
</script>
</body>
</html>
有需要的的朋友可以自取,css样式美化就自己去添加。
posted @ 2016-03-23 16:54  余美强  阅读(566)  评论(0编辑  收藏  举报