textarea 动态绑定 input 事件,然后再次切换绑定的 input 事件名,在 iOS 真机上,始终触发的是第一次绑定的 input 事件,而开发者工具,Android均正常。
可以直接导入代码片段测试:https://developers.weixin.qq.com/s/8Cn9UkmR76Aq
测试步骤(仅限iOS真机,其他环境均正常):
- 第一次在textarea输入文字,提示当前绑定和正在触发的事件名均为input1
- 点击动态切换事件名,继续在textarea输入文字,提示绑定的是input2,但触发的还是input1
js代码
Page({
data: {
inputEvent: "input1",
triggerInputEvent: "",
},
change() {
this.setData({
inputEvent: this.data.inputEvent === 'input1' ? 'input2' : 'input1'
})
},
input1(e) {
console.log('input1...', e.detail.value)
this.setData({
triggerInputEvent: 'input1'
})
},
input2(e) {
console.log('input2...', e.detail.value)
this.setData({
triggerInputEvent: 'input2'
})
}
})
wxml代码
<view>textarea</view>
<textarea bindinput="{{inputEvent}}" placeholder="请输入内容,以触发input事件"></textarea>
<view>当前绑定的事件名:{{inputEvent}}</view>
<view>正在触发的事件名:{{triggerInputEvent}}</view>
<button bindtap="change" style="margin:25px auto">动态切换事件名</button>
<view>iOS真机时,textarea绑定的input事件无法动态切换(一直触发的是第一次绑定的input1),模拟器,Android均正常</view>
解决方法:1, textarea 单独封装成组件 (推荐使用)
2, textarea放到最前
我遇到了类似的的问题。我的界面上有个 switch开关,然后textarea输入调起软键盘时会一直切换switch开关的change事件,导致switch开关组件一直来回切换。特别的诡异。在开发者工具,安卓手机和某些iOS上是没问题的。但在有些iOS上就有这种问题。
如果将textarea换成input就正常
这个textarea内部应该是有一些bug,官方能看到吗
uni-app 3 的底层实现会出现改变绑定事件的情况,该问题会导致非常容易出现 BUG
好像这样绑定ios确实有问题
为啥不在同一个事件内根据变量走不同的业务呢