获取用户输入每次都要点两次才行??
发布于 5 年前 作者 yonglu 8851 次浏览 来自 问答

在获取用户手机号发送验证码的时候,采用bindblur获取用户输入的手机号,但是每次输入完第一次点击获取验证码的时候,都会发现手机号为空。

这是绑定的函数:

//获取用户输入的手机号
   getPhone: function (e) {
       this.data.phone = e.detail.value
   },

这是获取用户输入的小程序页面

<view class="weui-cell weui-cell_vcode weui-cell_input">
                    <view class="weui-cell__hd">
                        <label class="weui-label">手机号</label>
                    </view>
                    <view class="weui-cell__bd">
                        <input class="weui-input" bindblur="getPhone" name='phone' placeholder="请输入手机号" placeholder-class="placeholder"/>
                    </view>
                    <view class="weui-cell__ft">
                        <view wx:if="{{isTime}}">
                            <view class='weui-vcode-btn'>剩余{{time}}秒</view>   
                        </view>
                        <view wx:else>
                            <view class="weui-vcode-btn" bindtap="getCode">获取验证码</view>
                        </view>
                    </view>
                </view>

通过这个函数进行验证码发送

//获取验证码
    getCode: function () {
         
        var phone = this.data.phone
        wx.showLoading({
            title: '发送中',
        })
        if (phone == '')
        {
            wx.showToast({
                title: '请输入手机号',
                image: '../common/images/fail.png'
            })
            return

        }

但是,每次刚输入完手机号点击获取验证码的时候就会报错,表示手机号为空。第二次点击的时候才会继续执行下去

2 回复

第一次点验证码,是执行键盘收起

用bindinput吧

回到顶部