jquery实现验证码发送以及验证码的有效时间30分钟实现方式

来源:互联网 发布:淘宝客服旺旺操作 编辑:程序博客网 时间:2024/04/30 17:04
var InterValObj; //timer变量,控制时间
var count = 60; //间隔函数,1秒执行
var curCount;//当前剩余秒数
var code = ""; //验证码
var codeLength = 6;//验证码长度
function sendMessage() {
    curCount = count;
    //产生验证码
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秒执行一次
//向后台发送处理数据,并发送邮件
    (jQuery).ajax({
type : "POST",
dataType : "json",
url : mainServer + "/userCenter/sendVerifiCodeActive.jspa",//发送验证码邮件
data : {
'newBindEmail' : $('#bindWuEmail').val(),//传入参数
'verifyCode':code
},
success : function(data) {
//邮件已经成功发送,弹出框提示
}
});


   }



    //timer处理函数
function SetRemainTime() {
    if (curCount == 0) {                
        window.clearInterval(InterValObj);//停止计时器
        $("#btnSendCode").removeAttr("disabled");//启用按钮
        $("#btnSendCode").val("重新发送");
        code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效    
    }
    else {
        curCount--;
        /*$("#btnSendCode").val("请在" + curCount + "秒内输入验证码");*/
        $("#btnSendCode").val("剩余"+curCount +"秒");
    }

}



当用户前台点击获取验证码的时候,异步向后台发送验证码,后台获取验证码和当前服务器的时间戳,存入数据库,数据表用户表添加了两个字段,验证码字符串

验证码截止时间datetime类型,当用户输入验证码后,和后台数据库的时间戳比较,看时间是否过期,如果过期,验证码无效,如果在有效期内,比较验证码是否相等

相等,则更新数据,并清空验证码,因为验证码是一次有效,不相等返回界面提示验证码不正确。