加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

vue 表单输入框不支持focus及blur变乱的办理方案

发布时间:2020-11-23 19:35:43 所属栏目:运营 来源:网络整理
导读:这篇文章首要先容了vue 表单输入框不支持focus及blur变乱的办理方案,具有很好的参考代价,但愿对各人有所辅佐。一路跟从小编过来看看吧

  短视频,自媒体,达人种草一站处事

这篇文章首要先容了vue 表单输入框不支持focus及blur变乱的办理方案,具有很好的参考代价,但愿对各人有所辅佐。一路跟从小编过来看看吧

回收指令的方法来办理这个题目(此处的前端框架以mint-ui为例):

1.html引用: v-mtfocus

2.在实例中添加指令

directives: {
  'mtfocus' (el, binding, vnode) {
   let mtinput = el.querySelector('input')
   mtinput.onfocus = function () {
    ...//假如要对节点的数据举办变动,且变动要映射到页面上,则变动可在vnode.context长举办,这样,改完之后,改变就会映射到页面
   }
   mtinput.onblur = function () {
    ...//同上理
   }
  }
 }

增补常识: vue中实现点击按钮使input表现的同时获取核心

需求声名:点击搜刮按钮呈现input框,并自动使input框聚焦。

如图所示:

实现方法1:操作vue的ref

html代码如下:

<input ref="inputVal" type="text" v-model="searchVal" placeholder="搜刮问题或内容..." />
<div v-show="searchBtnFlag" @click="searchIn">
 <i></i> 搜刮
</div>

Js代码如下:

searchIn(){
 this.searchBtnFlag = !this.searchBtnFlag;
 this.$nextTick(function () {
  //DOM 更新了
  this.$refs.inputVal.focus()
 })
},

重点:只必要把必要的操纵放在$nextTick内即可。

实现方法2:操作js(道理着实等同于方法1)

<input type="text" v-model="searchVal" placeholder="搜刮问题或内容..." />
<div v-show="searchBtnFlag" @click="searchIn">
 <i></i> 搜刮
</div>

Js代码如下:

searchIn(){
 this.searchBtnFlag = !this.searchBtnFlag;
 this.$nextTick(function () {
 document.getElementById("inputVal").focus();
 })
},

声名:必需在$nextTick内行使要领是由于:dom更新的先后次序的题目,不是全部的数据改变必然会触发dom的更新,而在修改数据之后当纵然用这个要领,可以获取更新后的 dom。

误区:直接行使autofocus

html:

<input v-bind:autofocus="!searchBtnFlag" type="text" v-model="searchVal" placeholder="搜刮问题或内容..." />
<div v-show="searchBtnFlag" @click="searchIn">
  <i></i> 搜刮
</div>

js:

searchIn(){
   this.searchBtnFlag = !this.searchBtnFlag;
   this.$nextTick(function () {
  document.getElementById("inputVal").focus();
   })
 },

这样的写法只在第一次时起浸染,假如点击打消后再次点击搜刮按钮则不会再次使input框自动聚焦。

记录一下,以备往后忘了好找。

以上这篇vue 表单输入框不支持focus及blur变乱的办理方案就是小编分享给各人的所有内容了,但愿能给各人一个参考,也但愿各人多多支持剧本之家。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读