收藏
回答

textarea组件 在 iOS 真机下 无法动态切换绑定 input 事件

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug textarea 微信iOS客户端 8.0.23 2.24.7

textarea 动态绑定 input 事件,然后再次切换绑定的 input 事件名,在 iOS 真机上,始终触发的是第一次绑定的 input 事件,而开发者工具,Android均正常。

可以直接导入代码片段测试:https://developers.weixin.qq.com/s/8Cn9UkmR76Aq

测试步骤(仅限iOS真机,其他环境均正常):

  1. 第一次在textarea输入文字,提示当前绑定和正在触发的事件名均为input1
  2. 点击动态切换事件名,继续在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>
回答关注问题邀请回答
收藏

5 个回答

  • hao
    hao
    01-16

    解决方法:1, textarea 单独封装成组件 (推荐使用)

    2, textarea放到最前

    01-16
    有用 1
    回复 1
    • hao
      hao
      01-16
      亲测可以
      01-16
      回复
  • 刘伟
    刘伟
    01-12

    我遇到了类似的的问题。我的界面上有个 switch开关,然后textarea输入调起软键盘时会一直切换switch开关的change事件,导致switch开关组件一直来回切换。特别的诡异。在开发者工具,安卓手机和某些iOS上是没问题的。但在有些iOS上就有这种问题。

    如果将textarea换成input就正常

    这个textarea内部应该是有一些bug,官方能看到吗

    01-12
    有用
    回复
  • 朱良臻
    朱良臻
    2022-07-15

    uni-app 3 的底层实现会出现改变绑定事件的情况,该问题会导致非常容易出现 BUG

    2022-07-15
    有用
    回复
  • 小黎
    小黎
    2022-06-27

    好像这样绑定ios确实有问题

    2022-06-27
    有用
    回复
  • Await
    Await
    2022-06-27

    为啥不在同一个事件内根据变量走不同的业务呢

    2022-06-27
    有用
    回复 1
    • 2022-06-27
      实现具体的业务功能自然有很多可以绕过的方式,只是有些框架会依赖该特性来实现底层的通用事件管理。
      2022-06-27
      回复
登录 后发表内容