vue中的input框点击后不聚焦问题
短信预约 -IT技能 免费直播动态提醒
input框点击后不聚焦问题
废话不多说直接上代码
哪个地方要写input框 就直接把这一部分代码放上 里面双向绑定的值和事件换上自己定义的
<div class="item" @click.stop.prevent="inputPaentClick('input1')">
<input
ref="input1"
placeholder="请输入搜索关键词"
v-model="value"
@keydown.enter="searchs"
/>
</div>
在方法里写上这些
inputPaentClick(refName) {undefined
//解决input框双击才可以聚焦问题
this.$nextTick(() => {undefined
this.$refs[refName] && this.$refs[refName].focus();
});
}
只复制这些就行 input里绑定的事件以及要实现的方法 写在这个事件同级的地方
vue input聚焦的坑
点击按钮,使某个input框聚焦
1、给 input 加个 ref 属性,写个 button 按钮并加个点击事件
<input type="text" ref="input">
<button @click="onFocus"></button>
2、onFocus方法:
onFocus() {
this.$refs.input.focus()
}
加载页面时自动聚焦
mounted() {
this.$nextTick(() => {
this.$refs.input.focus()
})
},
【坑】
如果input框是隐藏的,点击某个元素让input框显示,同时聚焦,这个时候聚焦效果就不会实现。
解决办法:
点击元素的时候用个变量做标识,然后再watch里面去监听这个变量,通过判断这个变量的值来聚焦,
可以写在setTimeout里面,或者写在nextTick里面即可解决问题;代码如下
watch: {
isClick(){
if(this.isClick == false) {
setTimeout(() => {
this.$refs.input.focus()
}, 100);
// this.$nextTick(() => {
// this.$refs.input.focus()
// });
}
}
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341