Vue:按钮倒计时N秒后可用

报名信息提交后弹出信息确认(为方便查看效果,注掉了数据校验),五秒后提交按钮方可点击提交信息。

 HTML:

<!--其他HTML结构-->

<!--点击申报(弹出层触发按钮)-->
<button class="robotBt" @click="robotEnter">点击申报</button>

<!--其他HTML结构-->


<!--报名信息确认-->
<div class="confirm" v-if="isConfirm">

<!--报名信息确认其他HTML结构-->

<div class="tc confirmBt">
<button class="confirmCancel" @click="confirmCancel">返回取消</button>
<button :class="[isConfirmTxt?'confirmEnter':'confirmCancel']"  @click="confirmEnter">确定提交 {{confirmTxt}}</button>
</div>
</div>

JS:

data(){
  return{
    isConfirm: false,//报名确认信息是否显示
    confirmTxt: 5,//倒计时时间5秒
    isConfirmTxt: false,//提交报名按钮是否可点击
    timer:null,//倒计时
  }
},
methods: {
  //点击申报弹窗及弹窗内按钮倒计时
  robotEnter() {    
    //其他代码或校验代码

    //更改弹窗显示状态
    this.isConfirm = true

    //提交报名按钮倒计时
    this.timer = setInterval(() =>{
      if (this.confirmTxt === 0) {
        this.confirmTxt = ""
        this.isConfirmTxt = true
        clearInterval(this.timer);
      }else{
        this.confirmTxt--
      }
    },1000);
  },
  
  //信息确认弹窗关闭
  confirmCancel() {
    this.isConfirm = false
  },

  //提交报名信息到数据库
  confirmEnter() {
    if (this.isConfirmTxt == false) {
      return false;
    }

    //其他代码 提交数据库
    
  }
},


Vue:关于setInterval() 方法和clearInterval() 方法https://blog.csdn.net/millia/article/details/106675713?spm=1001.2014.3001.5501

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值