发送短信按钮倒计时

1,定时器执行的函数

Js代码  

  1. var SMSbtnTiming = function () {  
  2.                     if (secondCount === 0) {  
  3.                         $self.addClass('enabled').removeClass('disabled');  
  4.                         $self.val('重新发送');  
  5.                         $self.removeAttr('disabled');  
  6.                         if (intervalHook) {  
  7.                             clearInterval(intervalHook);  
  8.                             intervalHook = null;  
  9.                         }  
  10.   
  11.                     } else {  
  12.                         $self.val('重新发送(' + secondCount + 's)');  
  13.                         secondCount--;  
  14.                     }  
  15.   
  16.                 };  

 

2,发送请求,并且操作成功后才执行倒计时

Js代码  

  1. $.ajax({  
  2.                     url: changeBindServer + action,  
  3.                     type: 'GET',  
  4.                     dataType: 'jsonp',  
  5.                     data: {mobile: mobile},  
  6.                     success: function (data) {  
  7.                         if (data.result) {  
  8.                             $spanHint.removeClass(CodeErrorMsg_class);  
  9.                             $spanHint.show();  
  10.                             $spanHint.text('发送成功');  
  11.                             $self.addClass('disabled').removeClass('enabled');  
  12.                             $self.val('重新发送(60s)');  
  13.                             $self[0].disabled = 'disabled';//禁止按钮的点击默认动作  
  14.                             //$ChanjetNewCodeInput[0].disabled = "disabled";  
  15.                             intervalHook = setInterval(SMSbtnTiming, 1000);  
  16.                             enAbleNextBtn($inputTF);  
  17.                             $inputTF.removeAttr('disabled');  
  18.                             $inputTF.focus();  
  19.                         } else {  
  20.                             console.log(data);  
  21.                             var date = new Date();  
  22.                             console.log(date);  
  23.                             if (data.errorMessage.indexOf('绑定') != -1) {  
  24.                                 setOldMobileMsg($oldMobileError, data.errorMessage);  
  25.                             } else {  
  26.                                 $spanHint.text(data.errorMessage);//数量超出限制  
  27.                                 $spanHint.addClass(CodeErrorMsg_class);  
  28.                                 $spanHint.show();  
  29.                             }  
  30.   
  31.                             //setTimeout(restoreSpanHit, 4000);  
  32.                         }  
  33.                         setTimeout(restoreSpanHit, 5000);  
  34.                     }  
  35.                 });  

 

3,定时器方法中的this指什么?

js代码:

Js代码  

  1. var timing2= function () {  
  2.             console.log(this);  
  3.             console.log('timing');  
  4.             clearInterval(a);  
  5.         };  
  6.         a=setInterval(timing2, 2000);  

 运行结果:

 

代码改为:

Js代码  

  1. var obj={  
  2.             time2: function () {  
  3.                 var timing2= function () {  
  4.                     console.log(this);  
  5.                     console.log('timing');  
  6.                     clearInterval(a);  
  7.                 };  
  8.                 a=setInterval(timing2, 2000);  
  9.             }  
  10.         };  
  11.         obj.time2();  

 

结果也一样

 

解决方法:

抽取出来一个方法:

Js代码  

  1. SMSbtnTimingCommon: function (me) {//定时器的方法  
  2.         //me._data=me._data||{};  
  3.         //console.log(me);  
  4.         var $self = $('#getAuthCodeBtn');  
  5.         if (me._data.bind.secondCount === 0) {  
  6.             var intervalHookTmp = me._data.bind.intervalHook;  
  7.             if (intervalHookTmp) {  
  8.                 console.log('me._data.intervalHook:' + intervalHookTmp);  
  9.                 clearInterval(intervalHookTmp);  
  10.                 console.log('me._data.intervalHook:' + intervalHookTmp);  
  11.                 console.log('stop timing');  
  12.                 me._data.bind.intervalHook = null;  
  13.             }  
  14.             $self.html('获取验证码');  
  15.             sendCodeBtn.enable($self);  
  16.         } else {  
  17.             //console.log(me._data.secondCount);  
  18.             $self.html('重新获取(' + me._data.bind.secondCount + ')');  
  19.             me._data.bind.secondCount = me._data.bind.secondCount - 1;  
  20.         }  
  21.   
  22.     }  

 调用:

Js代码  

  1. var SMSbtnTiming= function () {  
  2.             me.SMSbtnTimingCommon(me);  
  3.         };  

 

时间: 2024-09-19 20:31:58

发送短信按钮倒计时的相关文章

发送短信按钮倒计时服务器端支持

发送短信按钮倒计时服务器端支持 发送成功之后才计时:     Java代码   /***       * 服务器端启动倒计时,即记录时间戳       *       * @param mobile       */       private void setSMSLimit(String mobile) {           HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRe

基于JavaScript实现手机短信按钮倒计时(超简单)_javascript技巧

在淘宝等购物网站,我们都会看到一个发送短信倒计时的按钮,究竟是如何实现的呢?下面我就给大家提供一段代码很实用的. 废话不多说了,直接给大家贴js代码了. /* 120秒手机短信按钮倒计时 */ exports.sendmessage = function (name) { var second = 120; $(name).attr("disabled", true); var color = $(name).css('background-color'); $(name).attr(

Android实现发送短信验证码倒计时功能示例

一.简介: 开发中在用户注册或找回密码之类的功能,经常会遇到获取短信验证码,获取验证码后需要等待1分钟倒计时,这段时间是不能再次发送短信请求的. 效果图: 二.实现步骤: 1.一个关键类:CountDownTimer(Android系统自带的倒计时功能类) public class CountDownTimerUtils extends CountDownTimer { private TextView mTextView; //显示倒计时的文字 /** * @param textView Th

WPF MVVM制作发送短信小按钮_C#教程

最近做一个项目,因为涉及到注册,因此需要发送短信,一般发送短信都有一个倒计时的小按钮,因此,就做了一个,在此做个记录. 一.发送消息 没有调用公司的短信平台,只是模拟前台生成一串数字,将此串数字输出一下. 在这个部分写了两个类文件:一个是生成随机数,一个是模拟发送此数字的. 1.因为生成几位随机数,是必须要到项目上线之前才能定的,因此,写了一个带参数的函数,如下  /// <summary> /// 生成随机验证码 /// </summary> public static clas

JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)_javascript技巧

1.功能描述 当用户想要获取验证码时,就点击 免费获取验证码 ,然后开始倒计时,倒计时期间按钮文字为剩余时间x秒,且不可按状态,倒计时结束后,按钮更改为点击重新发送. 2.分析 必须用到定时器.按钮点击后,在定时器内做出判断.倒计时60秒,到0结束. 3.代码实现: 重点介绍:定时器在进行下一次倒计时之前,一定要清除一下,这样的话保证下一次定时器倒计时是正常的. <!DOCTYPE html> <html> <head> <meta charset="U

基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)_jquery

相关阅读: 基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能) 今天测试提了一个bug,发送短信倒计时功能,要求关闭页面也要进行倒计时.这想到了,当年我参与的周杰伦演唱会的先付先抢功能.与之类似,只不过,那个项目的时间都是服务器时间,本人目前有点偷懒,就用客户端的时间了. 一下是完整的代码,只不过在客户端的效率不是很好. <!doctype html> <html lang="en"> <head> <meta

基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)_javascript技巧

相关阅读: 基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭) 下面一段代码是小编给大家带来的js发送短信验证码后实现倒计时功能,代码简单易懂. 具体代码如下所示: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus

js发送短信倒计时的简单实现方法_javascript技巧

如下所示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <meta charset="utf-8"> &l

android-Android监听发送短信权限拒绝按钮的事件

问题描述 Android监听发送短信权限拒绝按钮的事件 如图,我想在用户点击拒绝按钮后弹出窗口提示用户,重新发送短信,监听异常的方法已经尝试过了,行不通,不明白我的意思的可以下载美丽说软件,点击一键注册后,发送短信,在权限选择界面点击拒绝,软件提示用户重新发送. 解决方案 你试试监听一些短信发送结果 解决方案二: 意见同楼上,获取短信发送结果,然后提示重新发送 解决方案三: 意见同楼上,获取短信发送结果,然后提示重新发送 解决方案四: 楼上说的对的,你可以通过广播监听发短信,返回失败就提示你要的