页面上只有一个输入框,进入页面自动获取焦点,但是点击页面其他地方的时候,输入框就会失去焦点,软键盘会收起,我想做到,点击页面其他地方,包括提交按钮,输入框不会失去焦点,同时软键盘也不收起。老哥些有什么办法没?用JS的话,可以在焦点后重新获取,但是uniapp我没找到相关api,this.$refs.input.focus() 说不是一个function
- 发布:2019-04-03 14:45
- 更新:2020-12-09 13:10
- 阅读:9685
1***@qq.com - hnfly
大兄弟, 不用那么复杂, 直接用这个 @touchend.prevent="sendmsg"
只要在发送按钮上把原来的@click="sendmsg"替换这个就完美解决了
我解决了。
说说我的情况,我写了一个聊天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();//发送逻辑
}
这样就实现了键盘常驻了。
1***@qq.com
秀
2021-01-15 11:59
1***@qq.com
这样也有个问题,就是在没有软键盘的时候,点击发送按钮会弹出软键盘
2021-05-17 18:04
z***@126.com
特意注册个账号来感谢你,太棒了大哥,牛比,太牛比了,困扰我好长时间了。请问这个是为什么啊?
2021-12-12 19:20
千叶KE
大哥!受我一拜,用你这方法终于解决了
2022-04-18 18:13
3***@163.com
特意登录账号来感谢你,太感谢了
2022-06-08 15:23
1***@qq.com
组合下拉选,手机端在滑动选择选项的时候,不希望input失去焦点,试了@touchend.prevent @touchmove.prevent @touchend.prevent 都不好用,求解
2022-10-19 16:57
1***@163.com
很强
2022-12-01 10:54
Tomyni
nb
2022-12-20 22:08
a***@sina.cn
大师牛逼
2023-04-21 09:51
2***@qq.com
回复 1***@qq.com: 你解决了吗
2023-06-15 10:25