JS自动倒计时30秒后按钮才可用(两种场景)


Posted in Javascript onAugust 31, 2015

展示效果图:

JS自动倒计时30秒后按钮才可用(两种场景)

WEB开发中经常会用到倒计时来限制用户对表单的操作,比如希望用户在一定时间内看完相关协议信息才允许用户继续下一步操作,又比如在收取手机验证码时允许用户在一定时间过后(未收到验证码的情况下)再次获取验证码。那么今天我来给大家介绍下如何使用Javascript来实现这一简单应用。

    查看演示 下载源码

应用场景1:用户注册时阅读完相关协议信息后才能激活按钮

某些网站注册时要求用户同意所谓的用户协议之类的信息,如果协议内容非常重要,有些网站会要求新注册的用户一定要阅读完相关协议信息才能激活下一步按钮提交表单。为了让用户能阅读完协议信息(实际用户有没有真正阅读咱不知道),开发者会设计一个倒计时比如30秒,30秒过后,表单提交按钮才会激活生效,下面来看具体如何实现。

<form action="https://3water.com/" method="post" name="agree"> 
 <input type="submit" class="button" value="请认真查看<服务条款和声明> ()" name="agreeb"> 
</form>

假设有上面这样一个表单,表单的其他部分我们省略,只有一个提交按钮,初始时按钮不可用,当显示30秒倒计时结束后,按钮就会显示“我同意”,并且可以点击激活。

我们用原生的js来实现这一效果:

<script> 
var secs = ; 
document.agree.agreeb.disabled=true; 
for(var i=;i<=secs;i++) { 
 window.setTimeout("update(" + i + ")", i * ); 
} 
function update(num) { 
 if(num == secs) { 
 document.agree.agreeb.value =" 我 同 意 "; 
 document.agree.agreeb.disabled=false; 
 } 
 else { 
 var printnr = secs-num; 
 document.agree.agreeb.value = "请认真查看<服务条款和声明> (" + printnr +")"; 
 } 
} 
</script>

我们设置时间为30秒,当然你也可以设置你想要的时间,将按钮禁用,也就是不可点击,然后循环30秒,通过window.setTimeout调用update()函数,将当前秒与倒计时对比,如果已经倒计时完成则显示“我同意”,并激活按钮。

应用场景2:用户激活短信通道向用户手机发送验证码短信以验明正身

很多网站在验证用户身份的时候需要提高用户信息的安全性,这样就会与用户手机绑定,于是就会向用户手机发送验证码信息,如果用户填写了正确的验证码提交后台,那么操作才会成功。而发送验证码也可能由于各种原因有发送不成功的情况,又不能让用户不停点击发送。如此开发者使用倒计时来处理这类问题,用户激活短信后,如果30秒后未收到验证码短信则可以再允许点击发送短信。

<form action="https://3water.com/" method="post" name="myform"> 
 <input type="button" class="button" value="获取手机验证码" name="phone" onclick="showtime()"> 
</form>

上面的表单在按钮上添加了一个onclick事件,调用了showtime()函数。

<script> 
function showtime(t){ 
 document.myform.phone.disabled=true; 
 for(i=;i<=t;i++) { 
 window.setTimeout("update_p(" + i + ","+t+")", i * ); 
 } 
 
} 
function update_p(num,t) { 
 if(num == t) { 
 document.myform.phone.value =" 重新发送 "; 
 document.myform.phone.disabled=false; 
 } 
 else { 
 printnr = t-num; 
 document.myform.phone.value = " (" + printnr +")秒后重新发送"; 
 } 
} 
</script>

和场景1一样,当点击按钮后,按钮状态为禁用,通过调用window.setTimeoutupdate_p()显示倒计时,当倒计时完成后,按钮显示“重新发送”,这时按钮状态为可用。

以上通过两种场景给大家展示了js实现自动倒计时30秒后按钮才可用,希望对大家有所帮助。

Javascript 相关文章推荐
excel操作之Add Data to a Spreadsheet Cell
Jun 12 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
Sep 16 Javascript
js 程序执行与顺序实现详解
May 13 Javascript
JavaScript闭包实例讲解
Apr 22 Javascript
学习JavaScript设计模式(代理模式)
Dec 03 Javascript
详解Node.js模块间共享数据库连接的方法
May 24 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
Nov 24 Javascript
js实现开启密码大写提示
Dec 21 Javascript
基于Angular.js实现的触摸滑动动画实例代码
Feb 19 Javascript
Javascript实现倒计时时差效果
May 18 Javascript
Angular4学习笔记之根模块与Ng模块
Sep 09 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
Sep 07 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
Aug 31 #Javascript
jquery实现点击变换导航样式的方法
Aug 31 #Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
Aug 31 #Javascript
js实现TAB切换对应不同颜色的代码
Aug 31 #Javascript
Bootstrap的图片轮播示例代码
Aug 31 #Javascript
jQuery实现鼠标滑过点击事件音效试听
Aug 31 #Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
Aug 31 #Javascript
You might like
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
js链表操作(实例讲解)
2017/08/29 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
复习Python中的字符串知识点
2015/04/14 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
Python+django实现文件下载
2016/01/17 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
化学学院毕业生自荐信范文
2013/12/17 职场文书
4s店总经理岗位职责
2013/12/31 职场文书
档案接收函
2014/01/13 职场文书
顶撞老师检讨书
2014/02/07 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
如何在pycharm中快捷安装pip命令(如pygame)
2021/05/31 Python
Elasticsearch 配置详解
2022/04/19 Java/Android