uniapp input内容点击发送按钮后怎么才能让键盘不收起?
- 发布:2020-04-24 12:00
- 更新:2022-08-25 14:00
- 阅读:6952
喜欢技术的前端 - QQ---445849201
这个问题可以这样处理
如需禁止点击其他位置收起键盘的默认行为,可以监听touch事件并使用prevent修饰符(仅支持App-v3、H5,其他平台可以通过设置focus来使输入框重新获取焦点),例如在确认按钮上使用:@touchend.prevent="onTap"
[已删除] (作者)
我解决了。
说说我的情况,我写了一个聊天app,聊天界面底部一个输入框,一个发送按钮。每次点击发送键盘都会收起,如何还要发生就要重新点击输入框调起键盘。无法想微信那样保持输入框常驻。
我的解决办法是:
<view class="chat-ipt">
<input id="msg-text" type="text" cursor-spacing="10" :focus="is_focus" v-model="info" value="" />
<view class="fs_btn">
<input type="text" @blur="chat_blur" @focus="chat_focus" cursor-spacing="10" value="" />
<button>发送</button>
</view>
</view>
在输入区有两个input,第一个放输入的内容,第二个和按钮放在一起用view包裹起来。
在第一个按钮上监听focus属性,默认时false。
在第二个输入框上监听获得、失去两个焦点。在获得焦点的时候,将is_focus设置为true,这会让第一个input得到焦点,同时处理信息发送的逻辑。在失去焦点时将is_focus设置为false。
第二个input使用定位放在按钮上面,设置透明度为0.
chat_blur(){
this.is_focus = false;
},
chat_focus(){
this.is_focus = true;
this.fs_info();//发送逻辑
}
这样就实现了键盘常驻了。
[已删除] (作者)
不会闪,实际上只是两个输入框的焦点切换。键盘不会收起。
官方有给出新的解决方案:
<input type="text" cursor-spacing="7.5" v-model="info" value="" />
<button @touchend.prevent="fs_info">发送</button>
在发送按钮上@touchend.prevent就可以了,不需要其他处理。
-
[已删除] (作者)
回复 z***@qq.com: @touchend.prevent="" 绑定的事件。
touchend是手机触摸到屏幕离开
prevent是touchend的修饰符,阻止默认行为。2020-05-11 14:23
-
[已删除] (作者)
回复 z***@qq.com: 不碍事。具体可以看这里 : https://uniapp.dcloud.io/component/input?id=%e5%85%b3%e4%ba%8e%e8%bd%af%e9%94%ae%e7%9b%98%e5%bc%b9%e5%87%ba%e7%9a%84%e9%80%bb%e8%be%91%e8%af%b4%e6%98%8e
2020-05-11 14:59
z***@qq.com
大佬 这个onTap是啥
2020-05-11 14:06
喜欢技术的前端
回复 z***@qq.com: 发送按钮点击事件名,这只是个例子,你换成你的事件名就行
2020-05-11 14:12
z***@qq.com
回复 喜欢技术的前端: 好的我试试
2020-05-11 14:14
z***@qq.com
谢谢大佬
2020-05-11 14:15
喜欢技术的前端
回复 z***@qq.com: 客气
2020-05-11 14:16
z***@qq.com
回复 喜欢技术的前端: 我试了下 好像不行啊 事件用tap和click都不行
2020-05-11 14:53
z***@qq.com
回复 喜欢技术的前端: 我的发送按钮是一个view
2020-05-11 14:55
喜欢技术的前端
回复 z***@qq.com: 这个功能需要v3配合使用
2020-05-11 15:10