关于input输入内容会将textarea内容覆盖或者替换的问题
发布于 5 年前 作者 yfang 1073 次浏览 来自 问答

在编辑器上,尚不会出现这样的问题,在预览模式下,苹果手机上input的输入的内容会将textarea的内容替换掉,具体重现方法,在预览后,请退出微信应用,是退出整个微信不需要重新输入密码,只需要关闭微信包括退出后台,然后再次进入微信点开微信小程序,在input输入内容即可将textarea的内容覆盖的BUG

<view>
    <input type="text" name="{{input_info}}" value="{{input_info}}" bindblur="bindinputValue" />
    <textarea  name="{{textarea_info}}" value="{{textarea_info}}" bindblur="bindTextareaValue"/>
    <textarea  name="{{textarea_info}}" value="{{textarea_info}}" bindblur="bindTextareaValue"/>
</view>
const app = getApp()
 
Page({
  data: {
    input_info: "这里是input",
    textarea_info: "这里是textarea",
  },
  bindinputValue: function (e) {
  var value = e.detail.value
    this.data.input_value = e.detail.value
},
  bindTextareaValue: function (e) {
  var value = e.detail.value
    this.data.textarea_value = e.detail.value
}
})
10 回复

在1.9.0修复了,请问还有问题吗

嗯哈哈。。我没注意到官方什么时候修复,

补充一点,重新setData最好单独写在timeOut里执行

@JohnnyDan丶

官方不是说已经在修复中了吗?

应该是还有这个问题的,我前两天遇到的,1.9.2的版本,需要在blur的时候异步setData textarea的value才能更新视图,data的值是没问题的

是的,我试过这样的场景,跟你一样的,会重现这个问题

麻烦更新到最新版微信试试

近期版本解决,目前还没有,但是有方法可以绕过这个bug

你好,按照你的demo并未能重现。麻烦确认下是否在别处setData误更新,若问题还存在麻烦提供一个微信版本,基础库版本,系统版本和机型

我按照你们的步骤复现了,

我的解决方案是在输入完input之后顺便把textarea的也setData下,

如:

this.setData({

    input: e.detail.value.input,

    textarea: this.data.textarea

});

@恶魔果实~  我们的场景是表单的场景:

多个input (A,B,C,D…) 只有一个textarea

只有在填写Ainput 的时候  textarea的value就会变成Ainput的

填写其他的不会。

回到顶部