小程序获取手机验证码倒计时的方法

 更新时间:2022年08月02日 17:13:16   作者:羽筠  
这篇文章主要为大家详细介绍了小程序获取手机验证码倒计时的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下<BR>

本文实例为大家分享了小程序获取手机验证码倒计时的具体代码,供大家参考,具体内容如下

test:

.wxss

.bind_input{ width: 450rpx; height: 80rpx; padding: 0 20rpx; margin: 0 auto 20rpx auto; border-radius: 40rpx; border: #ddd solid 1px;
    display: flex; justify-content: space-between; align-items: center;
}
.bind_input input{ width: 230rpx; height: 50rpx; padding-left: 30rpx;}
.bind_yzm_btn{ width: 160rpx; height: 50rpx; line-height: 50rpx; text-align: center; color: #fff; font-size: 24rpx; border-radius: 25rpx; background-color: #0FC393;}
.bind_yzm_btn.grey{ font-size: 28rpx; background-color: #ccc;}
 
.bind_btn{ width: 450rpx; height: 80rpx; line-height: 80rpx; margin: 40rpx auto 0 auto; text-align: center; color: #fff; font-size: 36rpx; font-weight: 300; border-radius: 40rpx; background-color: #0FC393;
    box-shadow:0px 10px 20px rgba(0,182,142,0.4);
}

.wxml

<view class="bind_input">
    <input type="tel" value="{{mobile}}" bindinput="setMobile" placeholder="输入手机号" maxlength="11" placeholder-style="color:#ccc;" />
</view>
 
<view class="bind_input">
    <input type="tel" value="{[code]}" bindinput="setCode" placeholder="短信验证码" maxlength="4" placeholder-style="color:#ccc;" />
    <text wx:if="{{ifTimeIn}}" class="bind_yzm_btn grey">{{timeCur}}</text>
    <text wx:else bindtap="getMobileVerify" class="bind_yzm_btn">获取验证码</text>
</view>
 
<view bindtap="bindDo" class="bind_btn">确定</view>

.js

Page({
 
  /**
   * 页面的初始数据
   */
  data: {
        mobile:'',
        code:'',
        
        // 倒计时参数
        timeStart:60, //倒计时初始值
        timeCur:null, //当前倒计时显示值
        timer:null,
        
        ifTimeIn:false, //是否倒计时中
        
        ifSendMobileVerify:false, //是否发送成功验证码
  },
    
    // 设置用户输入的手机号
    setMobile(e){
        // console.log(e.detail.value);
        this.setData({
            mobile : e.detail.value.replace(/\s+/g,"")
        });
    },
    
    // 设置用户输入的验证码
    setCode(e){
        // console.log(e.detail.value);
        this.setData({
            code : e.detail.value.replace(/\s+/g,"")
        });
    },
    
    
    
    // 倒计时
    setTime(){
        let timeCur = this.data.timeCur - 1;
        // console.log(timeCur);
        if(timeCur < 0){
            clearInterval(this.data.timer);
            this.setData({
                ifTimeIn:false
            });
            return false;
        }
        this.setData({
            timeCur : timeCur
        });
    },
    
    // 获取验证码
    getMobileVerify(){
        if(!this.data.mobile){
            wx.showModal({
                title: '友情提示',
                content: '请输入手机号',
                showCancel: false,
            });
            return false
        }
        
        if(!/^1\d{10}$/.test(this.data.mobile)){
            wx.showModal({
                title: '友情提示',
                content: '请输入正确的手机号',
                showCancel: false,
            });
            return false;
        }
        
        wx.showLoading({
          title: "发送中",
          mask: true
        });
        
        let dataJson = {
            mobile : this.data.mobile,
        };
        
        /* ----请求后台发送验证码成功---- */
        // 执行倒计时
        this.setData({
            timeCur : this.data.timeStart,
            timer : setInterval(this.setTime,1000),
            ifTimeIn : true,
            ifSendMobileVerify : true
        });
        /* ----请求后台发送验证码成功---- */
        wx.hideLoading();
    },
    
    // 确定提交
    bindDo(){
        if(!this.data.ifSendMobileVerify){
            wx.showModal({
                title: '友情提示',
                content: '请确定您的手机收到验证码再操作',
                showCancel: false,
            });
            return false;
        }
        if(!this.data.code){
            wx.showModal({
                title: '友情提示',
                content: '请输入验证码',
                showCancel: false,
            });
            return false;
        }
        
        /* ----请求后台提交成功---- */
        wx.showToast({
            title: '成功',
            icon: 'success',
            mask: true,
            duration: 1500
        });
        /* ----请求后台提交成功---- */
    },
 
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
 
  },
})

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

相关文章

  • 原生JS利用transform实现banner的无限滚动示例代码

    原生JS利用transform实现banner的无限滚动示例代码

    这篇文章主要介绍了原生JS利用transform实现banner的无限滚动示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】

    JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】

    这篇文章主要介绍了JS条形码(一维码)插件JsBarcode用法,较为详细的分析了条形码插件JsBarcode编码类型、参数、属性等相关功能、使用方法与注意事项,需要的朋友可以参考下
    2017-04-04
  • javascript十六进制及二进制转化的方法

    javascript十六进制及二进制转化的方法

    这篇文章主要介绍了javascript十六进制及二进制转化的方法,涉及javascript中toString方法的使用技巧,需要的朋友可以参考下
    2015-05-05
  • 浅谈js数组splice删除某个元素爬坑

    浅谈js数组splice删除某个元素爬坑

    这篇文章主要介绍了浅谈js数组splice删除某个元素爬坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • javascript实现去除HTML标签的方法

    javascript实现去除HTML标签的方法

    这篇文章主要介绍了javascript实现去除HTML标签的方法,涉及javascript正则替换相关操作技巧,需要的朋友可以参考下
    2016-12-12
  • javascript 多种搜索引擎集成的页面实现代码

    javascript 多种搜索引擎集成的页面实现代码

    这个页面是为了方便自己同时使用多种搜索引擎(呵呵我用其作默认主页),在IE5/IE6/FireFox下均运行正常,效果如下图
    2010-01-01
  • js window.print实现打印特定控件或内容

    js window.print实现打印特定控件或内容

    window.print可以打印网页,但有时候我们只希望打印特定控件或内容,怎么办呢?可以把要打印的内容放在div中,然后用下面的代码进行打印,希望对大家有所帮助
    2013-09-09
  • js获取当前日期代码适用于网页头部

    js获取当前日期代码适用于网页头部

    大家在浏览网页时可能会注意到网页头部有个不错的时间在显示,看起来感觉不错于是自己也实现了一个,下面是具体的代码,感兴趣的朋友可以参考下哈
    2013-06-06
  • javascript开发实现贪吃蛇游戏

    javascript开发实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了javascript开发实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • JavaScript数组对象赋值用法实例

    JavaScript数组对象赋值用法实例

    这篇文章主要介绍了JavaScript数组对象赋值用法,涉及javascript用户交互及针对数组的排序技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08

最新评论