textarea 输入汉字的同时拼音显示到输入框上
发布于 6 年前 作者 lei01 862 次浏览 来自 问答

第一个问题,部分手机在textarea上输入汉字的时候,汉字的拼音会到textarea的里,用户体验非常不好。

第二问题,我做了一个创建个人信息的页面,上面有两个input框输入电话号和验证码,一个button组件是发送验证码的。下面是两个textarea框,当我点击button组件是,电话框的电话号会跳到textarea上,验证码的框会跳到第二个textarea上。主要出现在苹果手机上。后来把button换成了view,测试了几个手机暂时没发现这个问题了,但是我不确定是否已解决问题了。还请官方哥哥们,看一下

9 回复

你确定是auto-height导致的串值吗,我第一个textarea写了auto-heigth第二个没写但是两个都会被input输入的值覆盖

谢谢迁客评论,第一个问题   value和bindinput 绑定的是不一样的。

value="{{textvalue}}",

textValue: function (event) {

    this.setData({

      “descriptionText”: event.detail.value

    });

}

第二个问题我也确认过了,没有绑定到一起啊,因为只有苹果手机出现了这个问题,安卓的并没有

我发现是 auto-height属性导致的问题,在ios上换行拼音输入过程会被auto-height的计算行为打断,安卓不会有问题

ios的输入法都是拼音输入过程会显示在输入框里面的,auto-height只是会在自动换行时导致正在输入的拼音被打断,所以也就是说Ios上textarea的auto-height属性不可用,会导致拼音输入出现换行故障,除非你只输入英文

用强制赋值的方法试一下,input框输入的时候,强制赋值textarea框 原有的值

请问ios上究竟怎么解决换行时变成字母的问题?我测试发现的确跟bindlinechange函数以及auto-height属性有关系,但是我又需要改变textarea的高度,不然体验不好。

怎么解决的第二个问题啊,我这苹果只要退出了微信,然后点进小程序后,点击input输入值都会赋给textarea

哦,你是第一个问题,我是第二个问题~尴尬

第一个问题:你肯定是在前端value={{text}},然后又添加了bindinput

textInput: function (e) {
    this.setData({
      text: e.detail.value
    })
  },

如果你这样做了,拼音就会出现在输入框里。因为这是实时监控的。解决办法去除value绑定,或者去除事件。

第二个问题,我估计是你的Input和textarea的bindinput搞到了同一个方法上

回到顶部