接上一篇的js发送验证码计时器,因为在发送验证码的时候要提前进行检查的,看看数据库里面有没有这条数据,之前的代码都是使用 jquery 来写的,所以在 jquery 里面去调用 js 的计时器就很难了,没办法,只好再写一款 jquery 的验证码计时器了,当然也是从网上找的一款计时器,加上自己小小的修改和之前的代码进行整合了,我们先看看单独的 jquery 计时器代码,如下:
- <script type="text/javascript" src="jquery.min.js"></script>
- </head>
- <body>
- <h1>发送验证码</h1>
- <input type="button" id="count-send" value="发送验证码到手机" />
- <script type="text/javascript">
- $(function(){
- var times=5; //60秒后重新发送,保存到变量
- $('#count-send').click(function(){
- var that=$(this); //dxpang.com
- timeSend(that);
- });
- function timeSend(that){
- if(times==0){
- that.removeAttr('disabled').val('点击重新发送验证码');
- that.css('background','原颜色')
- times=5;
- }else{
- that.attr('disabled',true).val(''+times+'秒后重新发送');
- that.css('background','点击后的颜色')
- times--;
- setTimeout(function(){
- timeSend(that);
- },1000);
- }
- }
- })
- </script>
好了,再把自己整合的网贷系统源码部分给贴出来吧,仅供自己查看,代码如下:
- $("#getcode").click(function(){
- var times=60; //60秒后重新发送,保存到变量
- var that=$(this);
- var ajaxurl = '{wap_url a="index" r="send_register_code"}';
- var query = new Object();
- query.mobile = $.trim($("#phone").val());
- query.post_type = "json";
- $.ajax({
- url:ajaxurl,
- data:query,
- type:"Post",
- dataType:"json",
- success:function(data){
- if(data.response_code==0)
- {
- alert(data.show_err);
- }
- else
- {
- alert('发送成功');
- timeSend(that);
- }
- }
- });
- function timeSend(that){
- if(times==0){
- that.removeAttr('disabled').val('发送验证码');
- that.css('background','#5DC9E6')
- times=60;
- }else{
- that.attr('disabled',true).val(''+times+'秒后重新发送');
- that.css('background','#848484')
- times--; //dxpang.com
- setTimeout(function(){
- timeSend(that);
- },1000);
- }
- }
- });
这个代码是先进行正则表达式和数据库的认证,如果错误的话,按钮不变,如果正确的话,发送验证码,然后按钮变灰为不能点击的状态,当然还有计时器从60秒开始倒数,倒数成功之后再开始变化为可点击的状态,使用的时候都要包含 jquery.js。