小程序之短信验证

在此描述一下前端实现效果的思路:当用户输入完手机号,点击发送验证码时候,要判断现在能否点击(能点击:用户手机号正确且不在发送验证码过程中;不能点击:用户输入的手机号不对或者已经在发送验证码过程中),然后做相应的处理。

wxml代码:
<form bindsubmit=\'formsubmit\'> <view class=\'people_info_box\'> <view class=\'people_info_item\'> <view class=\'people_info_box_name\'> <view>姓名</view> </view> <view class=\'people_info_box_cont\'> <input type=\'text\' value=\'哈喽\'></input> </view> </view> <view class=\'people_info_item\'> <view class=\'people_info_box_name\'> <view>手机号</view> </view> <view class=\'people_info_box_cont\'> <input type=\'number\' placeholder=\'输入手机号\' maxlength=\'11\' bindinput=\'input_val\'></input> </view> </view> <view class=\'people_info_item\'> <view class=\'people_info_box_name\'> <view>验证码</view> </view> <view class=\'people_info_box_contsinge\'> <input type=\'text\' value=\'\' placeholder=\'输入验证码\' class=\'single\'></input> </view> <view class=\'people_info_box_code\'> <text bindtap=\'check\'>{{show_get_code}}</text> </view> </view> </view> <button class=\'wc_btn\' name="wc_btn" form-type=\'submit\'>提交</button> </form>
Page({
    data: {
        login_member: \'\',         //输入的手机号
        login_code: null,         //传过来的验证码
        input_login_code: \'\',     //用户输入的验证码
        get_code_status: true,    //是否能点击获取验证码的状态判断
        show_get_code: \'获取验证码\',
        get_code_time: 60
    },
    onLoad: function (options) {

    },
    input_val:function(e){
        var userphone = e.detail.value;
        this.setData({
            login_member: userphone
        })
    },
    check: function () {
        if (!this.data.get_code_status) {
            wx.showToast({
                title: \'正在获取\',
                icon: \'loading\',
                duration: 1000
            })
            return;
        } else {
            if (this.data.login_member.length == 11) {
                var myreg = /^1\d{10}$/;
                if (!myreg.test(this.data.login_member)) {
                    wx.showToast({
                        title: \'请输入正确的手机号\',
                        icon: \'loading\',
                        duration: 1000
                    });
                    return;
                } else {
                    this.get_code();
                }
            } else {
                wx.showToast({
                    title: \'请输入完整手机号\',
                    icon: \'loading\',
                    duration: 1000
                })
                return;
            }
        }
    },
    get_code: function () {
        var that = this;
        wx.request({
                url:\'\',
                data: {

                    mobile: that.data.login_member

                },
                success: function (res) {

                    if (res.data.status == 1) {


                        var timer = setInterval(function () {

                            if (that.data.get_code_time > 0) {


                                // console.log(that.data.get_code_time);

                                that.setData({

                                    get_code_time: that.data.get_code_time - 1,
                                    show_get_code: \'剩余\' + (that.data.get_code_time - 1) + \'秒\',
                                    get_code_status: false

                                });

                            } else {

                                clearInterval(timer);

                                that.setData({

                                    get_code_time: 60,
                                    show_get_code: \'获取验证码\',
                                    get_code_status: true

                                });

                            }

                        }, 1000);


                        that.setData({

                            login_code: res.data.data.code       //后台返回的验证码,可以做判断用
                        });


                    } else {

                        wx.showToast({
                            title: res.data.message,
                            icon: \'loading\',
                            duration: 1000
                        });
                    }
                },
                fail: function (res) {

                    wx.showToast({
                        title: \'请求失败\',
                        icon: \'loading\',
                        duration: 1000
                    });

                }

            });
    }
})