uni-app实现获取验证码倒计时功能


Posted in Javascript onNovember 01, 2020

本文实例为大家分享了uni-app实现获取验证码倒计时的具体代码,供大家参考,具体内容如下

实现的效果

uni-app实现获取验证码倒计时功能

uni-app实现获取验证码倒计时功能

uni-app实现获取验证码倒计时功能

页面部分是一个三目运算,codeTime是倒计时的时间。

<template>
 <view>
 <view class="three">
 <view class="get" @tap="getCheckNum()">
 <text>{{!codeTime?'获取验证码':codeTime+'s'}}</text>
 </view>
 <view class="all">
 <view class="left">验证码</view>
 <input v-model="mydata.checkNum" placeholder="请输入验证码"/>
 </view>
 <button class="btn" @tap='sure'>确认</button>
 </view>
 </view>
</template>

具体思路:

三目运算,判断codeTime的值,当为0的时候显示文字“获取验证码”,大于0的时候显示验证码的倒计时。codeTime默认为0.

这里有个问题就是,怎么阻止用户在倒计时还没结束的时候一直点击,影响倒计时。

解决办法是写个判断,当codeTime大于60的时候,弹窗提示用户不能重复获取验证码。当倒计时运行完了之后要清除倒计时。

代码:

<script>
 export default {
 data() {
 return {
  codeTime:0,
 }
 },
  methods: {
   getCheckNum(){
 if(this.codeTime>0){
  uni.showToast({
  title: '不能重复获取',
  icon:"none"
  });
  return;
 }else{
  this.codeTime = 60
  let timer = setInterval(()=>{
  this.codeTime--;
  if(this.codeTime<1){
  clearInterval(timer);
  this.codeTime = 0
  }
  },1000)
    }
   }
  }
}

css样式:

.all{
 margin: 30rpx;
 border-bottom: 2rpx solid #EEEEEE;
 display: flex;
 flex-wrap: nowrap;
}
.left{
 margin-bottom: 30rpx;
 margin-right: 40rpx;
 width: 150rpx;
}
.three{
 background-color: white;
 width: 92%;
 border-radius: 10rpx;
 padding: 20rpx 0;
 margin: 20rpx auto;
 position: relative;
}
.btn{
 background-color: orange;
 font-size: 28rpx;
 width: 160rpx;
 height: 70rpx;
 line-height: 70rpx;
 margin-top: 40rpx;
 color: white;
 font-weight: 600;
}
.get{
 position: absolute;
 top: 40rpx;
 right: 30rpx;
 background-color: orange;
 height: 70rpx;
 line-height: 70rpx;
 color: white;
 border-radius: 10rpx;
 padding: 0 20rpx;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
定时器(setTimeout/setInterval)调用带参函数失效解决方法
Mar 26 Javascript
javaScript实现浮点数转十六进制字符
Oct 29 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
Nov 12 Javascript
JQuery日历插件My97DatePicker日期范围限制
Jan 20 Javascript
js实现上传图片及时预览
May 07 Javascript
vue.js指令v-model实现方法
Dec 05 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
Jul 22 jQuery
JS 60秒后重新发送验证码的实例讲解
Jul 26 Javascript
详谈innerHTML innerText的使用和区别
Aug 18 Javascript
vue组件watch属性实例讲解
Nov 07 Javascript
Vue中使用vue-i18插件实现多语言切换功能
Apr 25 Javascript
在Create React App中使用CSS Modules的方法示例
Jan 15 Javascript
uniapp电商小程序实现订单30分钟倒计时
Nov 01 #Javascript
详解JavaScript之Array.reduce源码解读
Nov 01 #Javascript
微信小程序实现星星评分效果
Nov 01 #Javascript
Express 配置HTML页面访问的实现
Nov 01 #Javascript
ant design vue 表格table 默认勾选几项的操作
Oct 31 #Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
Oct 31 #Javascript
Ant design vue中的联动选择取消操作
Oct 31 #Javascript
You might like
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
php截取字符串并保留完整xml标签的函数代码
2013/02/06 PHP
phpize的深入理解
2013/06/03 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
Python中的Descriptor描述符学习教程
2016/06/02 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
Python实现的特征提取操作示例
2018/12/03 Python
HTML的form表单和django的form表单
2019/07/25 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
python实现飞机大战小游戏
2019/11/08 Python
python中wx模块的具体使用方法
2020/05/15 Python
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
MySQL面试题目集锦
2016/04/14 面试题
大学自主招生自荐信范文
2014/02/26 职场文书
考试保密承诺书
2014/08/30 职场文书
师德标兵事迹材料
2014/12/19 职场文书
步步惊心观后感
2015/06/12 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python