比如,一些网站上的手机短信认证的功能,有类似实现点击按钮后,倒计时60秒才能再次点击发送的效果。

此例子用Javascript实现点击按钮后,倒计时60秒才能再次点击发送验证码的功能。

例子1:Javascript 实现 点击按钮 倒计时60秒方可再次点击发送的效果

<input type="button" id="btn" value="免费获取验证码" />
<script type="text/javascript">
var wait=60;
function time(o) {if (wait == 0) {o.removeAttribute("disabled");  o.value="免费获取验证码";wait = 60;} else { o.setAttribute("disabled", true);o.value="重新发送(" + wait + ")";wait--;setTimeout(function() {time(o)},1000)}}
document.getElementById("btn").onclick=function(){time(this);}
</script>

例子2:点击按钮出现60秒倒计时js代码

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="js/jquery.js"></script>
</head> <body>
<input type="button" id="btn" value="免费获取验证码" onclick="settime(this)" />
<script type="text/javascript">
var countdown=60;
function settime(val) {
if (countdown == 0) {
val.removeAttribute("disabled");
val.value="免费获取验证码";
countdown = 60;
} else {
val.setAttribute("disabled", true);
val.value="重新发送(" + countdown + ")";
countdown--;
}
setTimeout(function() {
settime(val)
},1000)
}
</script>
</body>
</html>

例子3:点击按钮后,60秒倒计时后才能继续可以点击,按钮上还能显示倒计时

预想的效果图:

这是微信公众平台上的代码

function E() {
var e = $("#mobile"), t = (new Date).getTime(), n = Math.floor((t - b) / 1e3);
g && clearTimeout(g), n >= 60 ? (e.prop("readonly", !1), y = !0, $("#sendmobile").html("发送验证码").attr("disabled", !1).removeClass("btn_disabled")) : (e.prop("readonly", !0), y = !1, $("#sendmobile").attr("disabled", !0).addClass("btn_disabled").html("%s秒后可重发".sprintf(60 - n)), g = setTimeout(E, 1e3));
}
function S() {
function e() {
if (!y) return;
var e = $.trim(n.val());
l.mobile(e) ? t.attr("disabled", !1).removeClass("btn_disabled") : t.attr("disabled", !0).addClass("btn_disabled");
}
var t = $("#sendmobile"), n = $("#mobile");
n.keyup(e).blur(e), e(), t.click(function() {
var e;
t.attr("disabled") !== "disabled" && (e = "+86" + $.trim(n.val()), b = (new Date).getTime(), E(), o.post({
url: w ? "/cgi-bin/formbyskey" : "/acct/formbyticket",
data: {
form: "mobile",
action: "set",
f: "json",
mobile: e
},
mask: !1
}, function(e) {
var t = e.BaseResp.Ret;
if (t == 0) u.suc("验证码已经发送"); else {
switch (t) {
case -13:
u.err("登录超时,请重新登录");
break;
case -35:
u.err("该手机已经登记过2次,请使用别的手机号进行用户信息登记");
break;
default:
u.err("验证码发送失败");
}
b = 0;
}
}));
});
}

这段代码小编就是不知道怎么才能调用到自己的代码上来,经过高人指点有了一些头寻。

高人的解题思路:如果严格的话,这个还要结合后台获取时间的,要不然别人刷新一下就行了。
                            如果不严格,用个cookie也可以。

<script src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script>
<script src="http://yukon12345.com/yukon12345.com/js/jquery.cookie.js"></script>
<script>time1=$.cookie("time1")||60;time2=$.cookie("time2")||60;dis1=$.cookie("dis1")dis2=$.cookie("dis2")function countDown($obj){var time;if($obj.attr("id")=="b1"){time=--time1;$.cookie("time1",time,{"expires":1});if(time<=0){time1=60;$obj[0].disabled=!$obj[0].disabledclearInterval(inter1)$obj.text("点击发送")$.cookie("dis1","")return}}if($obj.attr("id")=="b2"){ time=--time2;$.cookie("time2",time,{"expires":1});if(time<=0){time1=60;$obj[0].disabled=!$obj[0].disabledclearInterval(inter2)$obj.text("点击发送")$.cookie("dis2","")return}}$obj.text(time+"秒后重新发送")}$(function(){if(dis1="dis"){$("#b1")[0].disabled='disabled'inter1=setInterval(function(){countDown($("#b1"))},1000)}if(dis2="dis"){$("#b2")[0].disabled='disabled'inter2=setInterval(function(){countDown($("#b2"))},1000)}
$(".cd").bind("click",function(){$this=$(this);//没有被禁用时禁用并执行倒计时if(!$this[0].disabled){$this[0].disabled='disabled';if($this.attr("id")=="b1"){$.cookie("dis1","dis",{"expires":1})inter1=setInterval(function(){countDown($this)},1000)}if($this.attr("id")=="b2"){$.cookie("dis2","dis",{"expires":1})inter2=setInterval(function(){countDown($this)},1000)}}
})})
</script><button id="b1" class="cd" >点击发送</button><br>
<button id="b2" class="cd" >点击发送</button><br>

更多关于倒计时的文章请查看专题: 《倒计时功能》

js代码实现点击按钮出现60秒倒计时相关推荐

  1. vue+elementui 实现点击验证码出现60秒倒计时

    vue+elementui 实现点击验证码出现60秒倒计时 div部分 <div class="verCode@click="getVerCode":disable ...

  2. vue获取手机验证码60秒倒计时,不能点击按钮

    vue获取手机验证码60秒倒计时,不能点击按钮 export const resend = element => {console.log(element)var num = 60var tim ...

  3. html圆圈中打钩代码,CSS3点击按钮圆形进度打钩效果的实现代码

    文章目录 八.CSS3点击按钮圆形进度打钩效果8.1 图片预览8.2 index.html代码8.3 style.css代码 八.CSS3点击按钮圆形进度打钩效果 8.1 图片预览 8.2 index ...

  4. 榛子云短信-微信小程序60秒倒计时插件

    为了帮助开发者更便捷的使用微信小程序的短信验证码功能,特别是初学者更好的使用,榛子云短信特地开发了60秒倒计时插件,效果: 使用方法 1.引入插件countdown.js var CountDown ...

  5. 支付宝小程序60秒倒计时插件

    为了帮助开发者更便捷的使用支付宝小程序的短信验证码功能,特别是初学者更好的使用,榛子云短信特地开发了60秒倒计时插件,效果: 使用方法 1.引入插件countdown.js var CountDown ...

  6. vue页面实现短信验证码60秒倒计时

    废话不多说,直接上代码. template <div class='single-wrapper fs14'><div class='single-mb'>短信验证</d ...

  7. 微信小程序60秒倒计时

    大家可以直接使用插件: https://blog.csdn.net/zuoliangzhu/article/details/90140067 微信小程序发送短信验证码后60秒倒计时功能,效果图: 完整 ...

  8. 获取验证码 60秒倒计时

    获取验证码 60秒倒计时 html部分代码 <view><view class="mobile verification"><input v-mode ...

  9. 免费获取验证码60秒倒计时

    免费获取验证码60秒倒计时 <!DOCTYPE html> <html> <head> <script src="http://libs.baidu ...

  10. 简单实现vue验证码60秒倒计时功能

    简单实现vue验证码60秒倒计时功能 <span v-if="codeShow" @click="getPhoneCode">点击获取验证码< ...

最新文章

  1. ISAPI_Rewrite3.1相关知识
  2. react-native 集成极光推送jpush-react-native时的小问题
  3. Parse a document from a String
  4. 如何构建自己的SIP SERVER!
  5. php错误403_phpstudy访问文件报错403/Forbidden解决办法
  6. Android逆向笔记-大部分内购游戏破解思路
  7. 教师提升微能力_国培主讲风采录:信息技术再提升 微能力点巧研修
  8. nyoj-488 素数环 +nyoj -32 组合数 (搜索)
  9. paip.简化字-手写参考二简字..共98个
  10. linux环境安装ffmepg,Linux centOS下安装FFmpeg
  11. 中标麒麟系统u盘安装_如何用u盘安装中标麒麟桌面操作系统v6.0
  12. 我所热爱的多触摸系统 bill buxton
  13. Super NES Programming/SNES Specs
  14. 一招技巧解决360搜索结果页展示网站LOGO
  15. 一个优秀的UI界面应该是什么样的
  16. jquery 国际短信区号 鼠标移上实现下拉选择
  17. 跨时钟域传输和Verilog代码
  18. linux centos7以上的自带监控界面cockpit案例
  19. 【机器学习详解】SVM解回归问题
  20. 七夕节有病毒入侵 慎对QQ好友送玫瑰(转)

热门文章

  1. linux7找回删除的文件,centos7 rm -rf 删除文件的找回
  2. springboot+vue解决跨域问题
  3. python小世界网络生成
  4. 手机流量卡代理第一次做,要做好哪些准备?
  5. dw编写手机版html,手机移动网页制作:用
  6. 智能手机网页制作12个注意事项
  7. linux下如何查看cpu温度
  8. php左斜线和右斜线,左斜杠和右斜杠分别有什么意义?
  9. Virtual Box手动激活OEM版Win7
  10. Jmeter 使用详解、性能压测分析与性能优化思路