效果图如下:
直接上代码了: /*仿刷新:检测是否存在cookie*/
if($.cookie("captcha")){ var count = $.cookie("captcha"); var btn = $('#yzm'); btn.val(count+'秒后可重新获取').attr('disabled',true).css('cursor','not-allowed'); var resend = setInterval(function(){ count--; if (count > 0){ btn.val(count+'秒后可重新获取').attr('disabled',true).css('cursor','not-allowed'); $.cookie("captcha", count, {path: '/', expires: (1/86400)*count}); }else { clearInterval(resend); btn.val("获取验证码").removeClass('disabled').removeAttr('disabled style'); } }, 1000); } //发送短信验证码 $("#yzm").click(function(){ var mobile = $("[name='user_name']").val(); var btn = $(this); var count = 120; //需要倒计时的秒数 if(mobile == ''){ showError('请填写您的手机号!'); return false; } if (!mobile.match(/^((1[3,5,8][0-9])|(14[5,7])|(17[0,6,7,8]))d{8}$/)) { showError('请填正确的手机号!'); return false; }
$.ajax({ type:"post", url:"index.php?mod=login&action=sms", dataType:"json", data :{mobile:mobile}, success : function(result){ if(result.error){ showError(result.error); }else{ showSucc(result.datas);
//AJAX返回成功值,用户120秒之后才可以再次点击获取 var resend = setInterval(function(){ count--; if (count > 0){ btn.val(count+"秒后可重获"); $.cookie("captcha", count, {path: '/', expires: (1/86400)*count}); }else { clearInterval(resend); btn.val("获取验证码").removeAttr('disabled style'); } },1000) btn.attr('disabled',true).css('cursor','not-allowed'); } } }) })
html :
<div class="number"> <i class="iconfont icon-yonghu"></i> <input type="text" class="text" autocomplete="off" name="user_name" id="user_name" placeholder="注册帐号/手机号" style=" 235px;"> <input type="button" value= "获取验证码" id="yzm"> <label></label> </div>
后台也加了用户获取短信验证码的判断,通过AJAX的返回值来判断要不要禁用用户点击。
注意:一定要引入jquery.cookie.js 这个JS,不然的话不能生效的噢!
以上就是防止用户刷新重复点击获取验证码