广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >微信小程序实现验证码倒计时效果
  • 777
分享到

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

2024-04-02 19:04:59 777人浏览 安东尼
摘要

本文实例为大家分享了微信小程序验证码倒计时效果的具体代码,供大家参考,具体内容如下 如果写过js的倒计时,那么小程序中使用也是差不多的; 代码: data: {       daoj

本文实例为大家分享了微信小程序验证码倒计时效果的具体代码,供大家参考,具体内容如下

如果写过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.js

import {
  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;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 微信小程序实现验证码倒计时效果

本文链接: https://www.lsjlt.com/news/149535.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序实现验证码倒计时效果
    本文实例为大家分享了微信小程序验证码倒计时效果的具体代码,供大家参考,具体内容如下 如果写过js的倒计时,那么小程序中使用也是差不多的; 代码: data: {       daoj...
    99+
    2022-11-13
  • 微信小程序如何实现验证码倒计时效果
    这篇文章主要介绍了微信小程序如何实现验证码倒计时效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序如何实现验证码倒计时效果文章都会有所收获,下面我们一起来看看吧。如果写过js的倒计时,那么小程序中使用...
    99+
    2023-06-30
  • 微信小程序实现验证码倒计时
    本文实例为大家分享了微信小程序实现验证码倒计时的具体代码,供大家参考,具体内容如下 wxml代码: <view class='container'>   <form...
    99+
    2022-11-13
  • 微信小程序实现短信验证码倒计时
    本文实例为大家分享了微信小程序实现短信验证码倒计时的具体代码,供大家参考,具体内容如下 初始效果 当点击按钮时候设置禁止点击效果:如下图 话不多说,直接上代码 1.wxml部分 ...
    99+
    2022-11-13
  • 微信小程序实现发送短信验证码倒计时
    本文实例为大家分享了微信小程序发送短信验证码倒计时的具体代码,供大家参考,具体内容如下 效果图 WXML文件 <view class="container"> ...
    99+
    2022-11-12
  • 微信小程序如何实现短信验证码倒计时
    这篇文章主要讲解了“微信小程序如何实现短信验证码倒计时”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序如何实现短信验证码倒计时”吧!初始效果当点击按钮时候设置禁止点击效果:如下图话不...
    99+
    2023-06-30
  • 微信小程序实现手机获取验证码倒计时60s
    本文实例为大家分享了微信小程序实现手机获取验证码倒计时的具体代码,供大家参考,具体内容如下 功能展示: WXML: <view class="all">   <!...
    99+
    2022-11-13
  • 微信小程序实现倒计时
    本文实例为大家分享了微信小程序实现倒计时的具体代码,供大家参考,具体内容如下 大家好,今天我们来学习一下倒计时的实现,好好看,好好学,超详细的。 直接上代码吧 <view cl...
    99+
    2022-11-13
  • 小程序实现简单验证码倒计时
    本篇文章主要讲关于小程序验证码倒计时的功能实现,供大家参考,具体内容如下 首先是wxml部分 <form bindsubmit="regist">     <v...
    99+
    2022-11-13
  • 微信小程序获取验证码60秒倒计时功能
    目录效果图index.wxmlindex.jsindex.wxss效果图 index.wxml <view class="Info"> ...
    99+
    2023-05-17
    微信小程序60秒倒计时 微信小程序验证码倒计时
  • 微信小程序实现答题倒计时
    想做一个答题的计时器效果,本文为大家分享了微信小程序实现答题倒计时的具体代码,供大家参考,具体内容如下 思路 利用canvas不停的画弧线 效果 代码 wxml <view...
    99+
    2022-11-13
  • 微信小程序如何实现倒计时
    这篇文章主要介绍“微信小程序如何实现倒计时”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序如何实现倒计时”文章能帮助大家解决问题。直接上代码吧<view class=&quo...
    99+
    2023-06-30
  • iOS实现短信验证码倒计时
    在开发中,经常在需要用户注册的时候会需要实现验证码倒计时的功能,下面是解决这个问题的两种思路(使用UIButton控件) 一、利用NSTimer计时器 新建一个UIButton按钮...
    99+
    2022-05-30
    iOS 短信 验证码
  • 小程序验证码倒计时如何获取
    本篇内容介绍了“小程序验证码倒计时如何获取”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!.wxml <button ...
    99+
    2023-06-26
  • Android实现点击获取验证码倒计时效果
    我们在开发中经常用到倒计时的功能,比如发送验证码后,倒计时60s再进行验证码的获取,为了方便以后使用,这里做个记录,讲讲倒计时器的实现。  1、先进行倒计时工具类的封...
    99+
    2022-06-06
    倒计时 验证码 Android
  • 微信小程序实现简单倒计时功能
    本文实例为大家分享了微信小程序实现简单倒计时的具体代码,供大家参考,具体内容如下 任务描述: 计时器 任务要求: 案例描述:设计一个实现倒计时功能的小程序,小程序运行后,首先显示空白...
    99+
    2022-11-13
  • 微信小程序实现接收验证码
    本文实例为大家分享了微信小程序实现接收验证码的具体代码,供大家参考,具体内容如下 效果如下图: wxml部分如下: <!--验证码-->   <view clas...
    99+
    2022-11-13
  • 微信小程序实现随机验证码
    本文实例为大家分享了微信小程序实现随机验证码的具体代码,供大家参考,具体内容如下 废话不多说,直接上图看效果 一、实现功能 1、点击灰色底的验证码图片可以更换一张验证码 2、验证输...
    99+
    2022-11-13
  • 微信小程序实现图形验证码
    本文实例为大家分享了微信小程序实现图形验证码的具体代码,供大家参考,具体内容如下 1.wxml页面 <canvas canvas-id="canvas" bindtap='ch...
    99+
    2022-11-13
  • 微信小程序实现动态验证码
    目录一、创建自定义组件verification-code二、在index页面使用本文实例为大家分享了微信小程序实现动态验证码的具体代码,供大家参考,具体内容如下 一、创建自定义组件...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作