本文共 1473 字,大约阅读时间需要 4 分钟。
比如,一些网站上的手机短信认证的功能,有类似实现点击按钮后,倒计时60秒才能再次点击发送的效果。
此例子用Javascript实现点击按钮后,倒计时60秒才能再次点击发送验证码的功能。
例子1:Javascript 实现 点击按钮 倒计时60秒方可再次点击发送的效果
例子2:点击按钮出现60秒倒计时js代码
无标题文档
例子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也可以。更多关于倒计时的文章请查看专题:
转载地址:http://neoi.baihongyu.com/