textarea的cursor属性无效
发布于 5 年前 作者 zhangping 2868 次浏览 来自 问答

1.为textarea设置value属性与cursor属性,通过bindinput属性动态修改value值后,光标自动跳到句子末尾,没有按预期的cursor值调整。

2.安卓支持bindinput的返回值。ios不支持

对第一个问题做一个最简单的demo,代码如下。

<!--index.wxml-->
<view style="padding:50rpx 50rpx">

  <textarea style="border:1px solid black;" bindinput="inputValue" cursor="{{cursorValue}}" placeholder="这是一段占位字符"

   value="{{content}}"></textarea>

  <view>
    已输入{{content.length}}个字符
  </view>
</view>

//index.js
//获取应用实例
const app = getApp()
 
Page({
  data: {
    cursorValue: 2,
    content: '这是一个默认内容',
  },
  inputValue: function(e) {
    console.log('input value invoke');
    console.log(e);
    const data = e.detail.value;
 
    // 写入值后第一次设置cursor。
    // 无效
    this.setData({
      cursorValue: 2,
      content: data,
    });
 
    setTimeout(() => {
      // 排除是异步的原因
      this.setData({
        cursorValue: 2,
      });
      console.log('设置了cursorValue');
      // 但是结果依然无效。
    }, 2000);
  },
})

将cursor的值锁定在第二个位置。实际上并没有用。

测试机型:

开发工具上测试有问题。

手机机型信息如下:

3 回复

你好,请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码示例。

请问怎么解决,我也遇到了这个问题,而且无法规避,我们的业务需求是语音输入转文字赋值到textarea,如果转的文字不对是支持修改的,然后现在是每点一下光标就会跳到最后

已更新,@黄思程,能帮忙看下吗?

回到顶部