9***@qq.com
9***@qq.com
  • 发布:2026-02-28 09:13
  • 更新:2026-03-10 14:31
  • 阅读:283

【报Bug】textarea 使用 v-model 后,安卓自带输入法手写模式光标会自动跳到内容末尾,导致无法编辑前面的内容

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows11

HBuilderX类型: 正式

HBuilderX版本号: 4.87

手机系统: Android

手机系统版本号: Android 15

手机厂商: OPPO

手机机型: oppo reno15、oppo findx5、华为mate50、 vivo x300 以及荣耀 小米的大部分新旧机型

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

<template>
<view>
<textarea v-model="test"></textarea>
</view>
</template>

<script setup>
import {
ref
} from 'vue';
const test = '白日依山尽,黄河123 \n欲穷千里目,更上一层楼。';
</script>

操作步骤:

在加了 v-model 的 textarea 中,输入几行文字,把光标定位到第一行,打开输入法手写模式,连续输入“上下左右金木水火土”,

预期结果:

“下左右金木水火土”出现在用户光标定位的地方(第一行)

实际结果:

光标会自己跳到最后一行的末尾,导致“下左右金木水火土”出现在最后一行的末尾

bug描述:

uniapp vue3 app textarea 使用 v-model 后,编辑textarea中已有的多行文本,用手机自带的输入法,切换到【手写】模式,在任何一行【连续】输入文字时,光标会自动跳到最后一行的末尾,导致无法编辑前面的内容。

注意:手写单个文字输入没问题,连续手写输入有问题,切换到拼音输入模式后没问题。安装百度输入法替换手机自带的输入法,无此问题。
本人测试了OPPO、小米、荣耀、VIVO的多款机型(有老机也有最新的机型)都有此问题,鸿蒙 next 无此问题。

当textarea 去掉 v-model 后测试,问题消失。

本人开发的APP以老年用户为主,他们大部分使用手写,不会自己安装百度输入法,希望官方早日解决此问题。

2026-02-28 09:13 负责人:DCloud_UNI_OttoJi 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

作为 DCloud 官方评审人员,我对该 bug 反馈进行如下评审:


一、反馈内容完整性评估

项目 评估结果
BUG 标题 明确,指向性强,已说明平台(Android)、组件(textarea)、绑定方式(v-model)、输入法(手写)及问题表现(光标跳转)
BUG 描述 描述清晰,已说明:<br>- 使用 v-model 绑定 textarea<br>- Android 原生输入法手写模式连续输入时光标异常<br>- 单字输入正常,拼音输入正常<br>- 去掉 v-model 后问题消失<br>- 多品牌机型复现,鸿蒙 Next 无问题
代码示例 提供了最小可复现示例,可直接运行,无需调整
复现步骤 步骤清晰,结合代码可复现:<br>1. 使用 v-model 绑定 textarea<br>2. 输入多行文本<br>3. 光标定位到非末尾行<br>4. 切换手写模式连续输入
预期结果 合理:输入内容应出现在光标处
实际结果 明确:光标跳转至末尾,输入内容出现在末尾
分类信息 完整,包含:<br>- HBuilderX 版本(4.87)<br>- Vue 版本(Vue3)<br>- 平台(Android)<br>- 机型(OPPO、小米、荣耀、VIVO 等)<br>- 系统版本(Android 15)

结论:反馈内容完整,无需补充。


二、Bug 是否成立

根据知识库内容:

  • textarea 支持 v-model 双向绑定,文档中明确说明其用法与 Vue 一致。
  • 未在知识库中发现该问题的已知限制或说明,即该行为未被预期或文档说明
  • 用户已通过“去掉 v-model 后问题消失”排除输入法本身问题,确认与 v-model 绑定机制相关。
  • 多机型复现 + 鸿蒙 Next 无问题,说明问题集中在 Android 平台 + v-model + 原生输入法手写模式

结论:该 bug 成立,属于 Android 平台下 textarea 使用 v-model 与原生输入法手写模式交互异常。


三、是否为基本概念问题

  • 非用户误用:v-model 是标准用法,非错误使用。
  • 非平台不支持:textarea 和 v-model 在 Android 平台均支持。
  • 非替代方案问题:用户已说明“去掉 v-model 后正常”,说明问题核心在 v-model 实现机制。

四、建议后续处理方向(基于知识库)

当前知识库中未提供该问题的直接解决方案或已知 issue,建议:

  1. 将该问题提交至官方 issue 系统进行跟踪;
  2. 建议用户临时绕过方案
    • 使用 @input + :value 手动实现双向绑定;
    • 或引导用户使用百度输入法等第三方输入法(但用户已说明不可行);
  3. 建议官方在后续版本中优化 textarea 与 Android 原生输入法交互逻辑,特别是手写模式下的光标控制。

五、总结

项目 结论
反馈质量 高,信息完整,复现路径清晰
是否为有效 bug
是否需补充信息
是否已有解决方案 暂无,需官方修复
建议优先级 中(影响老年用户手写输入体验)

如需进一步处理,请将该 issue 转入官方 bug 跟踪系统,并建议开发团队关注 Android 平台下 textarea + v-model + 原生输入法手写模式的兼容性。

内容为 AI 生成,仅供参考
[已删除]

[已删除]

小助手说的没啥问题,先自己制作一个最简单的复现工程,先稳定复现问题,避免引入太多业务代码。你也自行测试,拼音输入是否正常、更换其他输入法是否正常,目前只能看到手写有问题,但是不能缩小问题范围。你也尝试 renderjs是否能规避问题,打印 change 事件卡看是否触发,先把问题简单排查,给出一些结论

  • 9***@qq.com (作者)

    我已做了最简单的页面代码来测试,确定有bug。你们自己不用试一下的吗?

    <template>

    <view>

    <textarea v-model="test"></textarea>

    </view>

    </template>


    <script setup>

    const test = '白日依山尽,黄河123 \n欲穷千里目,更上一层楼。';

    </script>

    2026-03-02 10:48

  • [已删除]

    回复 9***@qq.com: 我使用 HBuilderX alpha 5.01 + vue3+安卓小米标准基座,测试你给的案例,使用微信输入法手写、搜狗输入法手写均不能复现你的问题。看我最早说的,自己先缩小问题反馈,带着自查过的结论来沟通,能节约彼此的时间,如果你认为你能稳定复现问题,可提供复现工程、详细操作步骤

    2026-03-02 16:45

  • 9***@qq.com (作者)

    回复 [已删除]:

    BUG复现步骤:

    1、测试机型:安卓手机(例如小米17、OPPO X300、ViVo Find X9、荣耀 Magic 8)

    2、测试输入法:搜狗输入法或讯飞输入法。

    3、在应用市场搜索“诗词吾爱”并安装。

    4、打开“诗词吾爱”APP,点击“我”,登录帐号 uniapp@test.com 密码123

    5、点击链接“点这里复现手写输入BUG”,进入测试页。

    6、把光标定位到文本框文字中间,将输入法切换到手写模式。

    7、连续输入一句话,例如“今天中午吃什么”。

    8、结果只有“今天”两个字插入到了光标定位点,然后光标自己跑到了文本框最末尾,“中午吃什么”也插入到了文本框最末尾。


    备注:

    1、连续输入指手写时不停顿,不是一个字插入后再输入一个字。

    2、代码移除v-model后,bug消失。

    3、切换到拼音模式输入,bug消失。

    4、安装百度输入法,手写,bug消失。

    2026-03-10 14:16

9***@qq.com

9***@qq.com (作者)

我又录制了一个新视频,这次是最简单的页面,只有一个文本框,没有任何业务代码。你们看一下,这确实是bug。

9***@qq.com

9***@qq.com (作者)

我再录制一次视频,手写和拼音都测试,手写时光标会跳到内容最末尾,拼音没问题。希望官方大大重视此问题,老年用户基数也是很大的,不要放弃他们。祝uniapp越来越好!

9***@qq.com

9***@qq.com (作者)

BUG复现步骤:
1、测试机型:安卓手机(例如小米17、ViVo X300、OPPO Find X9、荣耀 Magic 8)
2、测试输入法:搜狗输入法或讯飞输入法。
3、在应用市场搜索“诗词吾爱”并安装。
4、打开“诗词吾爱”APP,点击“我”,登录帐号 uniapp@test.com 密码123
5、点击链接“点这里复现手写输入BUG”,进入测试页。
6、把光标定位到文本框文字中间,将输入法切换到手写模式。
7、连续输入一句话,例如“今天中午吃什么”。
8、结果只有“今天”两个字插入到了光标定位点,然后光标自己跑到了文本框最末尾,“中午吃什么”也插入到了文本框最末尾。

备注:
1、连续输入指手写时不停顿,不是一个字插入后再输入一个字。
2、代码移除v-model后,bug消失。
3、切换到拼音模式输入,bug消失。
4、安装百度输入法,手写,bug消失。

测试视频见附件

测试代码:
<template>
<view>
<textarea v-model="test"></textarea>
</view>
</template>
<script setup>
import {
ref
} from 'vue';
const test = ref('这是一个最简单的页面 \n只有一个文本框。');
</script>

  • [已删除]

    我测试了你线上的 demo,的确有问题,但是我使用本地的标准基座、自定义基座真机调试无法确认问题,是哪里有差异吗,提供复现工程说明问题,这个问题阻塞你开发吗,使用 input/change 时候可以?

    2026-03-10 16:47

  • 9***@qq.com (作者)

    回复 [已删除]:

    标准基座复现BUG:

    1、使用HBuilder 4.8.7 ,文件,新建,uniapp 项目,默认模板。vue版本选择:3

    2、打开pages/index/index.vue ,将代码替换为:

    <template>

    <view>

    <textarea :value="test"></textarea>

    </view>

    </template>

    <script setup>

    const test = '白日依山尽,\n黄河入海流,\n欲穷千里目。\n更上一层楼。';

    </script>

    3、运行到Android App基座,使用标准基座运行,手机选择 华为mate30 或 OPPO Find X5。

    4、使用搜狗输入法或讯飞输入法或微信输入法,切换到手写,BUG复现。


    最新备注

    1:textarea不管有没有v-model,有没有@input,都会产生bug。

    2、不管标准基座、自定义基座、发行版,都可复现。


    总结:

    1、textarea组件+搜狗或讯飞或微信输入法+手写 = bug

    2、textarea组件+百度输入法或小艺输入法+手写 = 正常

    2026-03-11 08:48

要回复问题请先登录注册