比较常用的一种效果,当点击获取手机验证码之后,会有一个倒计时的效果,一般是60秒开始到0就变为“获取验证码”,下面以5秒动画图片示例:
HTML代码:
<ul class="ulist">
<li class="group">
<label class="label" for="phone">联系电话:</label>
<div class="controls">
<input type="text" id="phone" class="txt">
</div>
</li>
<li class="group">
<label class="label" for="code">验证码:</label>
<div class="controls">
<input type="text" id="code" class="txt">
<button class="btn btn-small get-code" onclick="getCode(this)" id="J_getCode">获取验证码</button>
<button class="btn btn-small reset-code" id="J_resetCode" style="display:none;"><span id="J_second">60</span>秒后重发</button>
</div>
</li>
</ul>
jQuery代码:
/*获取验证码*/ var isPhone = 1; function getCode(e){ checkPhone(); //验证手机号码 if(isPhone){ resetCode(); //倒计时 }else{ $('#phone').focus(); } } //验证手机号码 function checkPhone(){ var phone = $('#phone').val(); var pattern = /^1[0-9]{10}$/; isPhone = 1; if(phone == '') { alert('请输入手机号码'); isPhone = 0; return; } if(!pattern.test(phone)){ alert('请输入正确的手机号码'); isPhone = 0; return; } } //倒计时 function resetCode(){ $('#J_getCode').hide(); $('#J_second').html('5'); $('#J_resetCode').show(); var second = 5; var timer = null; timer = setInterval(function(){ second -= 1; if(second >0 ){ $('#J_second').html(second); }else{ clearInterval(timer); $('#J_getCode').show(); $('#J_resetCode').hide(); } },1000); }
在线演示地址: