做一个发送短信的倒计时按钮(很常用)

简介: 做一个发送短信的倒计时按钮(很常用)

效果预览:

不BB,上代码:

.btn-danger:hover {
    color: #fff;
    background-color: #c9302c;
    border-color: #ac2925;}
    .btn-danger {
    color: #fff;
    background-color: #d9534}
    .btn {
    display: inline-block;
    padding: 6px 12px;
    background-color: #C9302C;
    margin-bottom: 0;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.42857143;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;}
    .btn:hover{
    color: #333;
    text-decoration: none;}
<input οnclick="sendmessage(this,60);" type="button" value="发送短信" class="btn btn-danger"/></p>
 function sendmessage(obj,second){
    if(sendmessage){
      countDown(obj,second)
    }
    else{
      alert("错误,虽然永远走不到这里!");
    }
    }
  function countDown(obj,second){
    // 如果秒数还是大于0,则表示倒计时还没结束
     if(second>=0){
          // 获取默认按钮上的文字
          if(typeof buttonDefaultValue === 'undefined' ){
            buttonDefaultValue =  obj.defaultValue;
        }
        // 按钮置为不可点击状态
        obj.disabled = true;            
        // 按钮里的内容呈现倒计时状态
        obj.value = buttonDefaultValue+'('+second+')';
        // 时间减一
        second--;
        // 一秒后重复执行
        setTimeout(function(){countDown(obj,second);},1000);
        // 否则,按钮重置为初始状态
        }else{
        // 按钮置未可点击状态
        obj.disabled = false;   
        // 按钮里的内容恢复初始状态
        obj.value = buttonDefaultValue;
       }   
    }

可能有人说,这个傻X,怎么写一个死判断,还写一个else

我解释一下,直接调coutDown是不是可以呢?当然是,但是有一个问题是,您做的是一个发送短信的功能,总不能一直发送页面吧,页面上需要调发送短信的接口,难道一直调接口??不理解的没关系,慢慢琢磨...

所以当您用到的这里的时候,会感谢我写的这个的。

目录
打赏
0
0
0
0
0
分享
相关文章
Mycat【Mycat部署安装(核心配置及目录结构、安装以及管理命令详解)Mycat高级特性(读写分离概述、搭建读写分离、MySQL双主双从原理)】(三)-全面详解(学习总结---从入门到深化)
Mycat【Mycat部署安装(核心配置及目录结构、安装以及管理命令详解)Mycat高级特性(读写分离概述、搭建读写分离、MySQL双主双从原理)】(三)-全面详解(学习总结---从入门到深化)
1051 0
layui框架实战案例(10):短信验证码60秒倒计时
layui框架实战案例(10):短信验证码60秒倒计时
425 0
Vuex的魔法宝典:掌握State, Getters, Mutations和Actions,让状态管理不再是难题
【8月更文挑战第27天】Vuex是Vue.js应用程序的状态管理工具,通过集中式存储管理组件状态并确保状态按照预定义的规则发生变化。
276 0
|
9月前
|
如何理解结构体的浅拷贝与深拷贝
结构体的浅拷贝仅复制对象的引用或基本数据类型值,不创建新对象;深拷贝则会递归地复制所有对象及其引用的对象,形成完全独立的新对象。两者主要区别在于是否共享内部对象。
前端进度条组件NProgress
前端进度条组件NProgress
147 1
前端进度条组件NProgress
对比一下Vue2和Vue3?
本文首发于微信公众号“前端徐徐”,详细对比了 Vue 2 和 Vue 3 在原理、生命周期、性能、编码方式、API、Diff 算法、打包构建、TS 支持等八个方面的差异,帮助读者全面了解两者的不同之处。
676 0
对比一下Vue2和Vue3?
前端常见状态码以及解决方式
前端开发中,HTTP状态码揭示了请求的处理结果。200 OK表示成功;400 Bad Request指请求错误,需检查URL、参数和数据格式;401 Unauthorized提示需验证身份,检查凭证有效性;403 Forbidden表示权限不足,检查资源授权和服务器配置;404 Not Found意味着资源未找到,确认URL正确性;500 Internal Server Error是服务器错误,需查看服务器日志和代码。针对这些问题,相应调整请求或服务器设置可解。
前端 JS 经典:宏任务、微任务、事件循环(EventLoop)
前端 JS 经典:宏任务、微任务、事件循环(EventLoop)
120 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等