uni-app textarea的maxlength的限制长度与input事件里的e.detail.value.length长度不一致
uni-app textarea的maxlength的限制长度与input事件里的e.detail.value.length长度不一致
操作步骤:
- textarea的maxlength的限制长度与input事件里的e.detail.value.length长度不一致
- 将maxlength 设置为5000 ,然后复制一段话到文本框 安卓可以达到5000字数就限制了,但是ios只能达到4976个字符
预期结果:
- 字数限制正常
实际结果:
- 字数限制异常
bug描述:
- textarea的maxlength的限制长度与input事件里的e.detail.value.length长度不一致
- 将maxlength 设置为5000 ,然后复制一段话到文本框 安卓可以达到5000字数就限制了,但是ios只能达到4976个字符
信息类别 | 详情 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | win10 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.0.5 |
手机系统 | iOS |
手机系统版本号 | iOS 13.4 |
手机厂商 | 苹果 |
手机机型 | PBEM00 |
页面类型 | vue |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
更多关于uni-app textarea的maxlength的限制长度与input事件里的e.detail.value.length长度不一致的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app textarea的maxlength的限制长度与input事件里的e.detail.value.length长度不一致的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是iOS系统对textarea处理的一个已知差异。iOS系统在计算字符长度时会将换行符(\n)计算为2个字符,而Android和Web端则按1个字符计算。建议的解决方案:
-
统一使用input事件中的e.detail.value.length来判断长度,而不是依赖maxlength属性
-
在代码中手动处理长度限制:
handleInput(e) {
if(e.detail.value.length > 5000) {
this.text = e.detail.value.substring(0, 5000)
}
}