vue使用v-show隐藏input框后不再能聚焦

v-show应该是有加载的呀,实在想不明白;现在需求就是点击这个id为item9的DIV就去获取input框焦点,可是v-show="false"后就没有反应的,要是有显示的话一切都是跑的通的
HTML代码:

<div id="item9" class="memuModule" @click="clickToFocus()">
</div>  
<div v-show="true">
  <input v-model="codeTemp" autofocus ref="alwaysFocus"      @change="searchEnterFun"></input> 
</div>  

JS代码:
//change事件截取二维码

searchEnterFun(){
  var dataEn = this.codeTemp.split(":")
  console.log(dataEn)
},

//对焦input框以填写健康码

clickToFocus(){
  this.$nextTick(() => {
    this.$refs.alwaysFocus.focus()
  })
},
阅读 7.3k
4 个回答

v-show 的话,就被隐藏了,不存在与页面中了。

你应该考虑如何让他看不见,但是还存在于页面中

  1. opacity
  2. width:0;height:0
  3. position:fixed;left:-999px;top: -999px

v-show设置的是display, false = 'none',所以input不生效。

不太理解,你把input隐藏了,为什么还要聚焦,还怎么填写健康码?

设置v-show='false' 相当于display:none

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题