收藏
回答

textarea ios机上输入一段文本,在文本中间输入文字后,光标却到最后了

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug textarea 客户端 iOS 1.02.1803210 6.6.5

textarea

1.ios机上输入一段文本,在文本中间输入文字后,光标却到最后了,安卓机上是ok的;

2.官方提出的bindinput(e),e.detail.cursor不是value的length,在文本中间输入文字后,cursor就不对了

回答关注问题邀请回答
收藏

9 个回答

  • 视频号小店技术助手 - cunjin
    视频号小店技术助手 - cunjin
    2018-04-27

    你好,后续我们会修复这个问题,目前有2种方法可以处理这个问题

    1. 在bindinput事件回调里面返回cursor和value

    bindInputHandler: function (e) {

    this.setData({

    originText: e.detail.value

    })

    return {

    cursor: e.detail.cursor,

    value: e.detail.value

    }

    }

    2. 在bindinput事件回调把input的value存为另外一个变量供后续使用

    2018-04-27
    有用
    回复 2
    • 澄c澄悦
      澄c澄悦
      2020-06-23
      这个只对input有效,对textarea无效,textarea超过maxlength后,在中间输入文字,光标会自动跑到最后
      2020-06-23
      回复
    • Thir*赛男
      Thir*赛男
      2020-07-06
      请问这个问题已经修复了吗?
      2020-07-06
      回复
  • Sam
    Sam
    2018-04-27

    是bindinput 事件 setDate渲染页面造成的,解决方法:只把值保存下来,不用setData


    2018-04-27
    有用
    回复
  • Yika
    Yika
    2018-04-27

    同样的问题,因为 setData 会重置整个输入框,还得监听 cursor 位置,再去 set cursor

    但是 input / textarea 的 cursor 属性失效了,请尽快解决。


    其实更重要的是,重新 setData 时,输入框的 cursor 能不能不自动跳转呢?


    安卓下是没问题的,就 iOS 有问题。

    2018-04-27
    有用
    回复
  • Sam
    Sam
    2018-04-27

    不能每个input、textarea都这样监听cursor啊

    2018-04-27
    有用
    回复
  • 小瓶盖
    小瓶盖
    2018-04-27

    其实textarea不加bindtap方法,不修改默认value的originText值,光标就不会有那个问题,只要修改了originText的值,ios上光标就是会到最后,而且cursor也会失效

    关于问题2,暂时处理方式是,‍设计改了文案,改成“限制100字符”   cusor其实可以用value.length来处理

    2018-04-27
    有用
    回复
  • Sam
    Sam
    2018-04-25

    我也遇到同样问题

    2018-04-25
    有用
    回复
  • 柏拉什么都不图
    柏拉什么都不图
    2018-04-11

    我也遇到了

    写了一个demo,真机必现的问题


    js文件:

    Page({

      data: {

        originText: '测试测试测测试测试测测试测试测测试测试测测试测试测测试测试测测试测试测测试测试测测试测试测测试测试测测试测试测'

      },

      inputWishMsg: function(e) {

        this.setData({

          originText: e.detail.value

        })

      }

    })


    wxml文件

    <view class="container">

      <textarea value="{{originText}}" style="height: 8em" bindinput="inputWishMsg"></textarea>

    </view>


    wxss文件

    textarea {

        width: 700rpx;

        padding: 25rpx 0;

    }

    2018-04-11
    有用
    回复
  • 小瓶盖
    小瓶盖
    2018-04-03

    就是textarea组件,基础用法

    前提:bindinput监听方法中改变value的值,输入一些内容后,需要在内容中插入一些字

    问题:

    1.光标选入内容中,输入一些文字后,在ios上光标又定位到内容最后了

    2. bindinput内的e.detail.cursor不是value的length

    2018-04-03
    有用
    回复
  • 韬々
    韬々
    2018-04-02

    麻烦提供一下出现问题的机型和微信版本,并且给个相关的代码片段(https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/minicode.html)或者appid,我们定位下问题

    2018-04-02
    有用
    回复
登录 后发表内容