input失去焦点问题,是否为bug,之前没有,现在出现!
发布于 5 年前 作者 fanping 16710 次浏览 来自 问答

先输入手机号,手机号为正确号码,

<input type=“number” bindblur=“tel_input” name=“username” placeholder=“输入手机号”  value="{{value1}}" bindinput=“registerState1” />

<button class=“getMsg” wx:if="{{sendState == -1}}" bindtap=“getMsg”  disabled="{{code}}">获取验证码</button>

,,采取失去焦点时触发tel_input事件

输入完手机号直接点击获取验证码

tel_input: function (e) {

this.setData({

telNumber: e.detail.value,

})

},

// 获取验证码

getMsg: function () {

// 数据请求时是一个异步操作

var that = this;

if (!that.data.telNumber.match(telReg)) {

wx.showToast({

title: “请输入正确手机号码”,

image: “/images/login/error.png”

})

}

结果是,that.data.telNumber为空,再次点击获取验证码却又能得到input里输入的号码,,,记得之前没有这个问题的啊,请问下,这是怎么回事?

7 回复

老兄,我的registerState1是用来做别的处理的,不影响这个,,,这里的问题是getMsg函数里没有拿到失去焦点时的值,我昨天测试都是没问题的,不知道官方那边是不是做了啥!这个是我点击获取验证码时,input已经失去焦点,值也的确有了,就是setData()第一次没拿到值,要再次点击才拿到,意思是我点击之后,input的确失去焦点了,但是点击时没有获取到input失去焦点时setData()改变的值(第一次)!

那样会先触发 bindtap=“getMsg”     后触发 bindblur=“tel_input”

对啊,我也意识到了,,,谢谢各位!换别的办法了!已经解决!

tel_input 改为registerState1

是键盘没收起  直接去点获取验证码么

忘了说,是在真机下测试下出现此问题,在开发者工具是没有问题的,输入正确号码,直接点击获取验证码在getMsg函数里是可以拿到input里的值的。

回到顶部