JS中setInterval()和clearInterval()定时器使用详解及获取验证码倒计时实例

6 篇文章 0 订阅
订阅专栏

1.使用详解

  setInterval()与clearInterval()是直属于windows对象的js函数。

  setInterval()以间隔指定的毫秒数不停的执行指定的代码。使用方法:setInterval(code,millisec),两个参数都是必须的,第一   个参数为要调用的函数或要执行的代码串。第二个参数为周期性执行或调用 code 之间的时间间隔,以毫秒计。

 clearInterval()用于停止 setInterval() 方法执行的函数代码。clearInterval(id_of_setinterval),参数是必须的,为setInterval返回的ID值

2.获取验证码倒计时源码

   获取验证码前端采用ACE框架,输入手机号,获取验证码,输入手机获取的验证码后登录。

   源码如下:

<html lang="en">
<head>
    <link href="assets/css/bootstrap.min.css" rel="stylesheet"/>
    <link rel="stylesheet" href="assets/css/font-awesome.min.css"/>
    <link rel="stylesheet" href="assets/css/ace.min.css"/>
    <link rel="stylesheet" href="assets/css/ace-rtl.min.css"/>
</head>

<body class="login-layout">
<div class="main-container">
    <div class="main-content">
        <div class="row">
            <div class="col-sm-10 col-sm-offset-1">
                <div class="login-container">
                    <div class="space-6"></div>
                    <div id="signup-box" class="signup-box widget-box no-border">
                        <div class="widget-body">
                            <div class="widget-main">
                                <h4 class="header green lighter bigger">
                                    <i class="icon-group blue"></i>
                                    登录
                                </h4>

                                <div class="space-6"></div>
                                <p> 请输入登录信息: </p>

                                <form>
                                    <fieldset>
                                        <label class="block clearfix">
                                            <span class="block input-icon input-icon-right">
                                                <input type="text" class="form-control" placeholder="手机号" id="phone"/>
                                                <i class="icon-phone"></i>
                                            </span>
                                        </label>
                                        <div class="space-10"></div>

                                        <label class="block clearfix">
                                            <span class="block input-icon input-icon-right">
                                                <input type="text" class="form-control" placeholder="验证码" id="verifyCode"/>
                                                <i class="icon-comment"></i>
                                            </span>
                                        </label>
                                        <div class="space-10"></div>
                                        <div class="clearfix">
                                            <button type="button" class="width-100 pull-left btn btn-sm btn-success" id="obtainVerifyCode">
                                                获取验证码
                                            </button>
                                        </div>

                                        <div class="space-10"></div>

                                        <div class="clearfix">
                                            <button type="button" class="width-100 pull-right btn btn-sm btn-primary" id="login" disabled="disabled">
                                                登录
                                                <i class="icon-arrow-right icon-on-right"></i>
                                            </button>
                                        </div>
                                    </fieldset>
                                </form>
                            </div>
                        </div><!-- /widget-body -->
                    </div><!-- /signup-box -->
                </div><!-- /position-relative -->
            </div>
        </div><!-- /.col -->
    </div><!-- /.row -->
</div>
</div><!-- /.main-container -->
<script>
    jQuery(function () {
        $("#obtainVerifyCode").bind("click", function () {
            var limitTime = 60;
            var phone = $("#phone").val();
            if (!phone) {
                layer.alert("请输入手机号");
                return;
            }
            var setIntervalId = null;
            // 每隔1000ms执行一次定时器
            setIntervalId = setInterval(function () {
                if (limitTime == 0) {
                    //60s倒计时结束后清除计时器
                    clearInterval(setIntervalId);
                    $("#obtainVerifyCode").html("获取验证码");
                } else {
                    limitTime--;
                    $("#obtainVerifyCode").html(limitTime + "秒后可以重新获取验证码");
                }

            }, 1000);
            //获取验证码ajax
            //获取到验证码后登录按钮可以点击
            $('#login').removeAttr("disabled");
        })


        $("#login").bind("click", function () {
            var phone = $("#phone").val();
            if (!phone) {
                layer.alert("请输入手机号");
                return;
            }
            var verifyCode = $("#verifyCode").val();
            if (!verifyCode) {
                layer.alert("请输入验证码");
                return;
            }
            //登录ajax
        })
    })


</script>

</body>
</html>

3.获取验证码倒计时页面效果  

JSsetInterval()和clearInterval()的使用
qq_45754184的博客
06-02 348
原因:用console.log(_this.refreshTimer)可以看出这个refreshTimer不是定时器本身,它只是一个用于传递定时器id的返回值,如果把他当成一个可以覆盖的值每次都清除再初始化就错了,连点两个镜像的验证按钮,每一次给refreshTimer赋值都是在创建新的定时器对象,第二个值会请求到状态值变化快(镜像文件越大,后台验证的越慢)的那个会执行clearInterval(_this.refreshTimer);
setInterval全面的介绍
08-02 1398
setInterval全面的介绍setInterval动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象。可以使用本动作更新来自数据库的变量或更新时间显示。setInterval动作的语法格式如下:setInterval(function,interval[,arg1,arg2,......argn])setInterval(
setInterval 倒计时 清除倒计时 clearInterval
领悟
07-30 1842
倒计时清除 setInterval 倒计时5s后跳转页面, clearInterval(this.handler); 清除倒计时 不执行倒计时里面的跳转, 点击事件强制跳转到其他页面 并且清除 倒计时任务 // 倒计时 cutDown() { this.handler = setInterval(() => { // 路由跳转后 倒计时没有清理 在点击跳转时清除定时器 this.second--;
el-form 清除部分必填项校验 clearValidate
Shimeng_1989的博客
04-14 4375
el-form 清除部分必填项校验 clearValidate。
JS 定时器使用方法和取消方法)
ksx2333的博客
04-23 3058
关于定时器的一些应用(包括添加定时器和清除定时器的方法) 定时器属于异步代码。 定时器: 一次性定时器:setTimeout(函数, 时间ms) 时间一到,执行对应的函数 循环定时器:每隔固定的时间,执行一次函数 steInterVal(函数,时间ms)
React-Native使用验证码倒计时的按钮实例代码
08-30
通过这个实例,我们可以了解到如何在React-Native实现一个带有倒计时功能的验证码按钮。这个组件可以灵活地适应不同的应用场景,比如更改倒计时时间、按钮文本、颜色等,只需通过props传递相应的配置即可。
js实现点击获取验证码倒计时效果
10-23
总的来说,JavaScript实现的点击获取验证码倒计时功能是通过`setInterval`和`clearInterval`这两个核心函数来控制时间的流逝和倒计时结束后的操作。理解并掌握这一技术,对于前端开发者来说是非常实用的。
jQuery 点击获取验证码按钮及倒计时功能
10-17
在前端开发,用户验证通常涉及发送验证码到用户的手机或邮箱,而验证码的发送往往伴随着一个倒计时功能,确保用户在一段时间内只能获取一次验证码。在这个过程,jQuery 可以用来实现点击按钮触发倒计时以及按钮...
JavascriptsetTimeOut和setInterval定时器用法
01-19
Javascript的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等。但它们的应用是有区别的。 ...
定时器setInterval()和clearInterval()的使用
weixin_45680024的博客
08-16 4159
setInterval()和clearInterval()
js clearInterval()方法的定义和用法
10-23
clearInterval()方法能够取消setInterval()方法设置的定时器,本文给大家详解clearInterval()方法的定义和用法,感兴趣的朋友参考下。
setInterval()和clearInterval() 用法
依然谈笑春风
08-05 4万+
setInterval()和clearInterval() 用法 一、含义(摘自百度百科) setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。 setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。 由 setInterval() 返回的 ID 值可用作 clearInterval() 方法
倒计时setIntervalclearInterval
淡淡的芦苇的博客
07-14 150
倒计时setIntervalclearInterval
JS setInterval() 与 clearInterval() 方法的使用
热门推荐
feng_cs的专栏
06-26 9万+
一、HTML DOM setInterval()、clearInterval() 方法     setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。     clearInterval() 方法可以取消该周期性的方法调用。          详细可参见:http://www.w3school.com.cn/htmldom/met_win_setint
js setInterval多次计时器后,使用clearInterval 删除计时器
山外小楼
09-17 2987
使用setInterval 时候,如果调动了多次,那么每次调用都会产生一个ID,如果直接使用clearInterval()是清除不掉计时器的, <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> ...
js计时器 setIntervalclearInterval
weixin_30735391的博客
08-30 109
var timer = setInterval(函数, 毫秒数) 功能:每隔对应的毫秒数执行一次函数。 返回值:系统没启动一个定时器,就会给一个标识,返回值就是这个定时器的编号。 clearInterval(timer) 功能:取消定时器 var i = 0; //传参 写函数名不是函数调用 用chome运...
js常用的计数器方法setInterval()、clearInterval()、setTimeout()和clearTimeout()
weixin_43755104的博客
07-29 263
setInterval() window.setInterval()方法,周期性地调用一个函数(function)或者执行一段代码。 例子 setInterval(function(){ console.log("log") },1000) clearInterval() window.clearInterval() 取消掉用setInterval设置的重复执行动作. 例子 var pageTimer = {} ; //定义计算器全局变量 //赋值模拟 pageTimer["timer1"].
JS 实现定时操作 隐藏显示图片(setInterval() clearInterval())
qq_41566772的博客
10-30 1288
&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8" /&gt; &lt;title&gt;&lt;/title&gt; &lt;script&gt; function init(){ time = setInterval("showAd()
JavaScript的单线程性质以及定时器的工作原理(转)
口乃心之门户
08-27 154
 最近在写JavaScript时遇到一些问题,就是当JavaScript多事件连续触发,JavaScript的单线程引擎是如何控制的。找了一些资料,觉得很有用,在此分享一下。   虽然不是原创,但是觉得此文章对JavaScript程序员非常有用。翻译的不是十分精确,但希望对大家有用。   原文:John Resig  http://ejohn.org/blog/how-javascri...
点击获取验证码倒计时vite怎么实现
最新发布
06-02
你可以用 Vue.js 的计时器功能来实现验证码倒计时。以下是一个简单的实现示例: 1. 在 Vue.js 组件定义一个计时器变量 `countdown`,并初始化为 60: ```javascript data() { return { countdown: 60 } } ``` 2. 在模板使用 `v-if` 和 `v-else` 指令来切换计时器和获取验证码按钮的显示状态: ```html <template> <div> <button v-if="countdown <= 0" @click="startCountdown">获取验证码</button> <button v-else disabled>{{ countdown }} 秒后重新获取</button> </div> </template> ``` 3. 在方法实现计时器的逻辑,使用 `setInterval` 函数每秒减少 `countdown` 的值,直到倒计时结束: ```javascript methods: { startCountdown() { this.countdown = 60 const timer = setInterval(() => { this.countdown-- if (this.countdown <= 0) { clearInterval(timer) } }, 1000) } } ``` 这样就可以实现一个简单的验证码倒计时功能。注意,这里只是一个示例,实际应用还需要考虑更多的细节和安全性问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

分类专栏

  • mac 3篇
  • 系统设计
  • jvm 2篇
  • 多线程 1篇
  • 面试 3篇
  • 生活 1篇
  • redis 1篇
  • 设计模式 8篇
  • linux 4篇
  • java配置文件 3篇
  • java项目搭建 3篇
  • mysql 7篇
  • java 基础 10篇
  • jmq
  • spark 2篇
  • maven 1篇
  • 绿植 1篇
  • 安装 1篇
  • IDEA 4篇
  • 算法 1篇
  • JavaScript 6篇
  • java高级 17篇
  • 编码 1篇
  • 工具 5篇
  • git 1篇
  • 管理
  • springMVC 1篇
  • hbase 1篇
  • 缓存 2篇
  • 前端 2篇
  • css
  • 产品

最新评论

  • @Value注解失效的原因分析

    逆风路上伴有谁: 静态变量错了表情包,我说idea可以看到但是运行时获取不到

  • win10 下,idea 无法在Terminal 中使用mvn 命令

    北北啊我是: 焯。。果然重启电脑好了。。。晕

  • mysql workbench 打开出现停用现象

    weixin_46043524: 就是说必须安装那两个软件吗?表情包

  • win10 下,idea 无法在Terminal 中使用mvn 命令

    qq_58193103: 他喵的,没想到你说的是真的,但是为啥重启电脑就好了啊感觉很玄学

  • mysql数据库collation作用

    SnakeBoy1: 不同在哪

大家在看

  • 【论文复现|智能算法改进】改进麻雀算法的无人机三维路径规划
  • KU网址有福了!Claude 3.5确定能在亚马逊和酷游网址上使用了!
  • 算法——二倍随机法
  • 自然语言处理(NLP):开启人机智能对话的钥匙 270
  • 鸿蒙开发系统基础能力:【@ohos.accessibility (辅助功能)】

最新文章

  • Redis可视化工具RedisInsight
  • Redission分布式锁应用案例(生成业务单号)
  • 性能测试工具JMeter
2024年3篇
2023年2篇
2022年5篇
2021年11篇
2020年5篇
2019年44篇
2018年54篇
2017年26篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源ps4下载明起名称兰叶春葳蕤桂华秋皎洁姓氏魏的宝宝起名word模板路径果蔬配送公司起名的孙家女起名噱头男孩起名带睿的名字锦起名字好听南方卫视tvs2直播给孩子起名字大全2019个体工商 取名起名大全给舞狮队起个名字劳务工程公司起名大全册子产生勇者斗恶龙怪兽篇2百香果案件始末借种电影2008年日历网游之重生最强起100分姓名中煤能源股吧bangbros.com赌翠老舍原名棋牌室起哪些名葛健颖迫不及待的意思他在逆光中告白电视剧淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化