alert('请输入有效的手机号码!');
}, 1000);
function SetRemainTime() {
document.cookie=cookieString;
break;
第一种:普通效果,刷新页面倒计时失效
var countdown;
}
//倒计时效果 getCode回调函数 获取验证码api
function backFunc1(data){
}
setTimeout(function() { settime(obj) },1000) //每1000毫秒执行一次
type : 'POST',
$("#second").click(function (){
console.log("验证码将发送到你手机");
<input id="second" type="button" value="免费获取验证码" />
var phonenum = $("#phonenum").val();
var strCookie=document.cookie;
});
else {
});
}
//location.href作为页面的唯一标识,可能一个项目中会有很多页面需要获取验证码。
obj.attr("disabled", true);
//修改cookie的值
} else {
}else{
//判断是否设置过期时间,0代表关闭浏览器时失效
* @param {Object} obj 获取验证码按钮
var InterValObj; //timer变量,控制时间
curCount = count;
我们在网站建设中,比喻会员注册等需要用到的发送手机验证码倒计时效果,具体请看如下:
curCount--;
}
};
}
}
}
if(!d.success){
});
}
var phone=$("#mob").val();//手机号码
doPostBack('${base}/login/getCode.htm',backFunc1,{"phonenum":phonenum});
var timer = setInterval(function() {
/**
}else{
cookieString=cookieString+";expires=" + date.toGMTString();
obj.text(_delay).addClass("btn-disabled");
cache : false,
countDown($(this), getCode);
<script>
alert("模拟验证码:"+d.msg);
//timer处理函数
LocalDelay.delay = localStorage.getItem("delay_" + location.href);
//设置setLocalDelay
url : url,// 请求的action路径
if (res.code == 000) {
_delay--;
if(!myreg.test(phonenum)){
function editCookie(name,value,expiresHours){
}
if (obj.text() == "获取验证码") {
//发送验证码
date.setTime(date.getTime()+expiresHours*1000);
/**
function doPostBack(url,backFunc,queryParam) {
window.clearInterval(InterValObj);//停止计时器
return;
obj.text(delay);
var delay = _delay;
*
if(arr[0]==name){
function getCookieValue(name){
第三种:使用localStorage存储验证码,实现防止页面刷新
} else {
$(function(){
$("#btnSendCode").removeAttr("disabled");//启用按钮
settime(obj);//开始倒计时
}else{//返回验证码
var phonenum = $("#phonenum").val();
}
date.setTime(date.getTime()+expiresHours*1000); //单位是毫秒
*/
localStorage.setItem("delay_" + location.href, delay);
var d = $.parseJSON(data);
第二种:使用js操作cookie实现防页面刷新
if (countdown == 0) {
if (curCount == 0) {
alert(d.msg);
InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
url: '/pims/send.php', //目标地址
data:queryParam,
var cookieString=name+"="+escape(value);
var result = isPhoneNum();
type: "POST", //用POST方式传输
var timeLine = parseInt((new Date().getTime() - LocalDelay.time) / 1000);
obj.val("免费获取验证码");
*/
data: "phone=" + phone,
//产生验证码
if(expiresHours>0){
}
if(v>0){
clearInterval(timer);
var LocalDelay = {};
}
} else {
v = getCookieValue("secondsremained")?getCookieValue("secondsremained"):0;//获取cookie值
$.get(":8080/demo/js/json.json", {}, function(res) {
LocalDelay.time = localStorage.getItem("time_" + location.href);
cookieString=cookieString+";expires=" + date.toUTCString();
obj.text(_delay);
return false;
//getLocalDelay()
//设置button效果,开始计时
error: function (XMLHttpRequest, textStatus, errorThrown) { },
}
</script>
if (delay > 1) {
}
/*业务逻辑*/
$("#btnSendCode").val(curCount + "秒后可重发验证码");
setLocalDelay(_delay);
console.log("过期");
$("#btnSendCode").val("重新发送验证码");
}
dataType: "text", //数据格式:JSON
error : function() {// 请求失败处理函数
function settime(obj) {
function monitor(obj) {
function getLocalDelay() {
$("#btnSendCode").val(curCount + "秒后可重发验证码");
btn.onclick = function() {
localStorage.setItem("time_" + location.href, new Date().getTime());
_delay = LocalDelay.delay - timeLine;
*
break;
<input id="btnSendCode" type="button" value="发送验证码" onclick="sendMessage()" />
for(var i=0;i<arrCookie.length;i++){
}
//业务逻辑
});
});
//开始倒计时
}
//功能实现
}
if(expiresHours>0){
var arr=arrCookie[i].split("=");
obj.text(_delay).addClass("btn-disabled");
//倒计时效果
$("#code").val(d.msg);
if(result){
* @param {Function} callback 获取验证码接口函数
countdown--;
}
//发送验证码时添加cookie
},
//将手机利用ajax提交到后台的发短信接口
//alert(msg);
} else {
monitor($(btn));
setLocalDelay(delay);
<input type='text' name='mob' id="mob">
delay--;
//点击click
} else {
countdown=getCookieValue("secondsremained");
<script>
var _delay = 60;
}
}
//根据名字获取cookie的值
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
}
async : false,
* @param {Object} obj 获取验证码按钮
$.ajax({
obj.text("获取验证码").removeClass("btn-disabled");
}, 1000);
sendCode($("#second"));
function getCode() {
//向后台发送处理数据
var date=new Date();
})
//v = getCookieValue("secondsremained");//获取cookie值
}
</script>
}
}else{
};
addCookie("secondsremained",60,60);//添加cookie记录,有效时间60s
}
return unescape(arr[1]);
var timer = setInterval(function() {
document.cookie=cookieString;
alert(res.message);
function sendMessage() {
}
callback();
function setLocalDelay(delay) {
var cookieString=name+"="+escape(value);
function countDown(obj, callback) {
}
//校验手机号是否合法
var LocalDelay = getLocalDelay();
$.ajax({
return LocalDelay;
obj.removeAttr("disabled");
obj.text("获取验证码").removeClass("btn-disabled");
</script>
alert("手机号码不能为空!");
success: function (msg){
function sendCode(obj){
var curCount;//当前剩余秒数
<input type='text' name='mobcode' class='inputxt' datatype='*' nullmsg='手机验证码不能留空!'>
success : backFunc
}
}
settime($("#second"));//开始倒计时
} else {
<script type="text/javascript">
code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
var arrCookie=strCookie.split("; ");
}
return "";
if (_delay > 1) {
}
return false;
var btn = document.getElementById("btn-getcode");
function isPhoneNum(){
editCookie("secondsremained",countdown,countdown+1);
$(function() {
$("#btnSendCode").attr("disabled", "true");
return true;
function addCookie(name,value,expiresHours){
//调用监听
clearInterval(timer);
obj.val("重新发送(" + countdown + ")");
if (timeLine > LocalDelay.delay) {
var count = 120; //间隔函数,1秒执行
if(phone != ""){
var date=new Date();