textarea
1.ios机上输入一段文本,在文本中间输入文字后,光标却到最后了,安卓机上是ok的;
2.官方提出的bindinput(e),e.detail.cursor不是value的length,在文本中间输入文字后,cursor就不对了
其实textarea不加bindtap方法,不修改默认value的originText值,光标就不会有那个问题,只要修改了originText的值,ios上光标就是会到最后,而且cursor也会失效
关于问题2,暂时处理方式是,设计改了文案,改成“限制100字符” cusor其实可以用value.length来处理
我也遇到了
写了一个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;
}
同样的问题,因为 setData 会重置整个输入框,还得监听 cursor 位置,再去 set cursor
但是 input / textarea 的 cursor 属性失效了,请尽快解决。
其实更重要的是,重新 setData 时,输入框的 cursor 能不能不自动跳转呢?
安卓下是没问题的,就 iOS 有问题。
你好,后续我们会修复这个问题,目前有2种方法可以处理这个问题
在bindinput事件回调里面返回cursor和value
bindInputHandler: function (e) {
this.setData({
originText: e.detail.value
})
return {
cursor: e.detail.cursor,
value: e.detail.value
}
}
- 在bindinput事件回调把input的value存为另外一个变量供后续使用
就是textarea组件,基础用法
前提:bindinput监听方法中改变value的值,输入一些内容后,需要在内容中插入一些字
问题:
1.光标选入内容中,输入一些文字后,在ios上光标又定位到内容最后了
2. bindinput内的e.detail.cursor不是value的length
麻烦提供一下出现问题的机型和微信版本,并且给个相关的代码片段(https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/minicode.html)或者appid,我们定位下问题