文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

微信小程序如何实现验证码倒计时效果

2023-06-30 15:48

关注

这篇文章主要介绍了微信小程序如何实现验证码倒计时效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序如何实现验证码倒计时效果文章都会有所收获,下面我们一起来看看吧。

如果写过js的倒计时,那么小程序中使用也是差不多的;

代码:

data: {      daojishi:60,    inter:''    },  daojishi: function () {    this.data.inter = setInterval((res) => {      this.fun();    }, 1000);  },  fun: function () {    let t = this.data.daojishi;    t--;    this.setData({      daojishi: t    })    if (t <= 0) {      // location.href = "https://www.baidu.com";      clearInterval(this.data.inter);      this.setData({        isyanzhengma: true      })    }  },

手机登录、填手机号获取验证码,倒计时后重新获取效果

描述:

输入正确的手机号并且输入验证码后,手机登录按钮变为红色可点击状态;自动验证输入的手机号是否为合法手机号;点击获取动态码后开始60秒倒计时后才可以再次获取动态码;

效果图:

微信小程序如何实现验证码倒计时效果

代码:

html:

<view class="dltel">  <view class="teltit">手机快捷登录</view>  <view class="inpbox">    <input placeholder="请输入手机号" class="inpbtn" type='number' maxlength="11" value="{{mobile}}" bindinput='blurPhone' />    <text class="dongtaima {{hui?'hui':'red'}}" wx:if="{{isyanzhengma}}" bindtap="dongtaima">获取动态码</text>    <text class="dongtaima" wx:else>重发({{daojishi}})</text>  </view>  <view class="inpbox">    <input placeholder="请输入验证码" value="{[code]}" maxlength="6" class="inpbtn" bindinput="codetap"  />  </view>  <view class="teldl {{dlno ? 'tou50':''}}" bindtap="teldltap">    <text class="icontxt">手机登录</text>  </view></view>

js:

// pages/dltel/dltel.jsimport {  sendCode,  mobileLogin} from "../../utils/requst/api.js";Page({    data: {    navbarData: {      isfixed: false,      iswhite: false, //icon color      showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示      title: '登录', //导航栏 中间的      backgroundcolor: '#fff',      isintercept: false //返回拦截    },    mobile: '',    code: '',    isyanzhengma: true,    hui: true,    dlno: true,    daojishi: 60,    teltrue: false,    inter: '',  },  // 手机号验证  blurPhone: function (e) {    this.setData({      mobile: e.detail.value    })    let phone = this.data.mobile;    if (!(/^1[34578]\d{9}$/.test(phone))) {      this.setData({        teltrue: false,        hui: true,      })      if (phone.length >= 11) {        wx.showToast({          title: '手机号有误',          icon: 'none',          duration: 2000        })      }    } else {      this.setData({        teltrue: true,        hui: false,      })      console.log('验证成功', this.data.teltrue)    }  },  dongtaima: function (e) {    if (this.data.teltrue & !this.data.hui) {      let params = {        mobile: this.data.mobile      }      sendCode(params).then((res) => {        console.log(res);        if (res.data.msg == '发送成功!') {          wx.showToast({            title: res.data.msg,            icon: "none",            duration: 2000          })          this.setData({            isyanzhengma: false          })          this.daojishi();        } else {          wx.showToast({            title: "发送失败,请重发!",            icon: "none",            duration: 2000          })        }      })    } else if (!this.data.teltrue) {      wx.showToast({        title: "请填写正确的手机号!",        icon: "none",        duration: 2000      })    }  },  codetap: function (e) {    // console.log(e);    this.setData({      code: e.detail.value    })    if (this.data.teltrue & this.data.code != '') {      this.setData({        dlno: false      })    }  },  daojishi: function () {    this.data.inter = setInterval((res) => {      this.fun();    }, 1000);  },  fun: function () {    let t = this.data.daojishi;    t--;    this.setData({      daojishi: t    })    if (t <= 0) {      // location.href = "https://www.baidu.com";      clearInterval(this.data.inter);      this.setData({        isyanzhengma: true      })    }  },  teldltap: function () {    let params = {      code: this.data.code,      mobile: this.data.mobile    }    if (this.data.teltrue & this.data.code != '') {      mobileLogin(params).then((res) => {        // console.log(params);        // console.log(res);        if (res.data.message == "ok") { //登录成功 修改参数          //getApp().globalData.token = res.data.data.token;          //getApp().globalData.type = res.data.data.type;          //getApp().globalData.telnum = res.data.data.mobile;          //wx.setStorageSync('token', res.data.data.token);          //wx.setStorageSync('type', res.data.data.type);          //wx.setStorageSync('telnum', res.data.data.mobile);          //let pages = getCurrentPages(); // 当前页的数据,          //let prevPage = pages[pages.length - 3]; // 上上页的数据          //console.log(pages);          //prevPage.setData({            //token: res.data.data.token,            //type: res.data.data.type,            //telnum: res.data.data.mobile          //})          //wx.navigateBack({            //delta: 2          //})        } else {          wx.showToast({            title: res.data.msg, // 未成功原因            icon: "none",            duration: 2000          })        }      })    } else if (!this.data.teltrue) {      wx.showToast({        title: "请填写正确的手机号!",        icon: "none",        duration: 2000      })    } else {      wx.showToast({        title: "请填写验证码!",        icon: "none",        duration: 2000      })    }  },  })

css:(less)

@fontcolor:#353535;@red:#ff2b0a;.dltel{   position: relative;  width: 100%;  height: 100vh;  padding:0 40rpx;  box-sizing: border-box;  .teltit{    font-size: 50rpx;    color: @fontcolor;    line-height: 90rpx;    margin-top: 35rpx;    margin-left: 20rpx;  }  .inpbox{    position: relative;    width: 100%;    height: 100rpx;    line-height: 100rpx;    font-size: 28rpx;    color: @fontcolor;    display: flex;    flex-direction: row;    border-bottom: 1px solid #eee;    .dongtaima{          }    .inpbtn{      width: 430rpx;      height: 100%;      margin:0 30rpx;    }    .hui{      color: #888    }    .red{      color: @red;    }  }  .teldl{    position: relative;    width: 100%;    height: 94rpx;    border-radius: 15rpx;    line-height: 94rpx;    text-align: center;    font-size: 36rpx;    margin-top:60rpx;    color: #fff;    background: @red;  }  .tou50{    background:#ff9584;  }}

关于“微信小程序如何实现验证码倒计时效果”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“微信小程序如何实现验证码倒计时效果”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯