uni-app nvue 移动端 textarea唤起软键盘 点击发送 会换行而不是正常发送
uni-app nvue 移动端 textarea唤起软键盘 点击发送 会换行而不是正常发送
测试过的手机
ios14 华为
操作步骤
nvue 移动端 textarea唤起软键盘 点击发送 会换行而不是正常发送
预期结果
nvue 移动端 textarea唤起软键盘 点击发送应该是正常发送
实际结果
发送不出去文本变成了换行
bug描述
nvue 移动端 textarea唤起软键盘 点击发送 会换行而不是正常发送
| 信息类别 | 内容 |
|----------------|----------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC开发环境版本 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 3.1.2 |
| 手机系统 | 全部 |
| 手机厂商 | 华为 |
| 页面类型 | nvue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app nvue 移动端 textarea唤起软键盘 点击发送 会换行而不是正常发送的实战教程也可以访问 https://www.itying.com/category-93-b0.html
首先他并不是bug。苹果的默认行为就是换行,如果想把换行改成发送监听换行即可。
示例代码如下:
<template>
<view class="content">
<textarea class="textarea" v-model="txt"></textarea>
</view>
</template>
更多关于uni-app nvue 移动端 textarea唤起软键盘 点击发送 会换行而不是正常发送的实战教程也可以访问 https://www.itying.com/category-93-b0.html
但是如果采用watch在textarea直接粘贴一个带\n的一段文本,也很导致触发响应的事件,请问是否有解决方案呢?
回复 冰_峰: 我这边也出现了这个问题 点击右下角的发送触发不了@confim事件 watch输入内容也经常出现问题 哎 问题真的多
好的谢谢
这是nvue中textarea组件在移动端的一个常见问题,主要原因是软键盘的"发送"按钮行为与textarea默认行为冲突。解决方案如下:
- 监听textarea的confirm事件(对应软键盘发送按钮):
<textarea @confirm="handleSend"></textarea>
methods: {
handleSend(e) {
// 处理发送逻辑
this.sendMessage(e.detail.value)
// 清空输入
this.inputValue = ''
}
}
- 如果需要阻止默认换行行为,可以添加以下样式:
textarea {
white-space: pre-line;
}
- 对于iOS平台,可能需要额外处理return-key-type属性:
<textarea return-key-type="send" @confirm="handleSend"></textarea>
- 如果问题依旧,可以尝试在handleSend方法中手动blur textarea:
handleSend(e) {
// ...发送逻辑
this.$refs.textarea.blur()
}