你可以通过给el-input组件添加一个ref属性来引用它,在Vue组件的JavaScript部分使用this.$refs来访问这个DOM元素。因为el-input是一个组件,它内部封装了一个input元素,但在大多数情况下,直接使用this.$refs.yourRefName.focus()就足够了,因为Element UI的el-input组件内部会处理聚焦的逻辑。
一般情况下给input标签设置autofocus属性是可以实现自动获取焦点的。 难点在于el-input的结构是input标签外面增加了一层el-input_wrapper。所以一般情况,给他设置autofocus属性是不会成功的。 【解决方案】 1.给el-input设置ref属性 2.将input设置成响应式数据 3.直接调用方法 参考博客 https://blog.csdn.net/weixin_...
<el-input v-model="filterPlanName" ref="autoFocus" ></el-input> 1. this.$nextTick((_) => { this.$refs.autoFocus.focus(); }) 1. 2. 3. 参考: [element-ui]自动获取el-input的焦点
都只有在第一次点击按钮的时候可以让Input获得焦点,在不刷新页面的情况下,第二次以后的按钮点击都不会让Input获得焦点。猜测了一下是存才一个全局变量,当我们第一次使Input获得焦点以后改变了这个预设变量的值,在Input失去焦点的时候并没有将这个值重置,所以导致了后面的问题。 事实上,只要你在打开这个页面后还没...
querySearchAsync(string, cb){//input 获取焦点触发的事件(内容发生变化触发) }, handleSelect(){//点击下拉选项 (选中下拉选项) }, handleBlur(){(失去焦点时触发) if(!this.handshow){ }else{ this.handshow = false; setTimeout(()=>{ this.$refs.test.focus() ...
如果使用el-input需要做如下改进 <el-input v-focus></el-input> 1. import Vue from 'vue' Vue.directive('focus', { inserted(el, binding, vnode) { el.querySelector('input').focus() }, }) 1. 2. 3. 4. 5. 6. 7. 参考 在vue项目中引用element-ui时 让el-input 获取焦点的方法...
el-input自动获取焦点 <el-inputref="tableHeadFilterInp"/>this.$nextTick(()=>{this.$refs.tableHeadFilterInp.focus()})
虽然element有提供input的autofocus属性,但是当我们第二次进入页面就会发现autofocus已经不再生效,需要通过onMounted去触发input的focus解决这个问题。 1.先给el-input绑定一个ref: 2.定义一个函数去触发这个input的focus:const focusInput = () => { nextTick(() => { inputRef.value.focus() }) } ...
前端主要框架为Vue.js,在页面使用组件库element-ui的el-input、el-select、el-autocomplete等元件时,想要在表单验证为空时,使空值的元件获取焦点高亮。效果如下图所示: 解决思路 通过查看网上的相关问题和官方文档,发现在Vue中,可以通过$ref.ref属性名来访问DOM元素。又通过查看HTML的说明文档得知,通过focus()方法可...
Vue中使input和el-input自动获取焦点的处理 一、【普通<input>的自定义指令操作】:先在入口文件注册一个全局自定义指令 //main.jsVue.directive('focus', {inserted (el, binding, vnode) {//聚焦元素el.focus() } }) 【普通<input>的自定义指令使用】:v-"+指令名"...