要做一款手机注册时发送验证码的计时器,也就是点击一次发送按钮,然后按钮变灰成不可点击的状态,等到指定(60秒)之后才可以再次点击,这样有效的防止了用户一直点击而产生错误,首先想到的自然就是 js 了,研究了一下午的时候,不过这个 js 和之前页面的无法整合,之前的所有注册全是 jquery,所以这个也就没用了,不过效果看起来还不错,所以先收藏起来吧,也是从网上找的,只可惜了没有 jquery 的即时返回数据的功能,也就是无法从数据库中直接读取数据直接返回,有些可惜了。
- <input type="button" style="height:32px;width:120px;" value="点击发送验证码" onclick="sendCode(this)" />
- <script type="text/javascript">
- var clock = '';
- var nums = 10;
- var btn;
- function sendCode(thisBtn)
- {
- //if(!document.getElementById("phone").value){
- //return false;
- //}
- //if (document.getElementById("phone").value.replace(/(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9})|(15[0-9]{9})/g, "") == document.getElementById("phone").value){ dxpang.com
- //return (false);
- //}
- btn = thisBtn;
- btn.disabled = true; //将按钮置为不可点击
- //btn.style="background:red"; //背景颜色
- btn.value = nums+'秒后重新获取';
- clock = setInterval(doLoop, 1000); //一秒执行一次
- }
- function doLoop()
- {
- nums--;
- if(nums > 0){
- btn.value = nums+'秒后重新发送';
- btn.style="background:#D7D7D7"; //背景颜色
- }else{
- clearInterval(clock); //清除js定时器
- btn.style="background:#5DC9E6"; //背景颜色
- btn.disabled = false;
- btn.value = '获取验证码';
- nums = 10; //重置时间
- }
- }
- </script>
至于效果的话可以自己在html里面运行,不过这里建议还是使用 jquery 比较好,比较 jquery 代码量少,而且兼容性还好。