1、需要聚焦的el-input输入框设置ref值: ref="getfcous"

<el-input v-model="workorder" ref="getfocus" :clearable="true" @keyup.enter.native="fill()" placeholder="请扫码或输入"/>

2、在mounted生命周期使用this.$nextTick设置自动聚焦:

mounted(){
// 页面渲染完成时自动聚焦到用户名输入框,ref="getfocus"
this.$nextTick(() => {
this.$refs.getfocus.focus();
})
},

=============================================================================================

此处表单使用element-plus框架中的表单组件。

制作简单版的登录表单。

2个输入框:用户名username,密码password;1个登录按钮。

表单中双向绑定:
data中设置对象user来获取并保存表单中输入的数据:user:{username:'',password:''}。

el-form标签:      :model="user"

el-input输入框:  v-model="user.username"和v-model="user.password"

加载页面时输入框自动聚焦:
1. 需要聚焦的el-input输入框设置ref值: ref="unameInput"   (unameInput为自己任意命名)

2. 在mounted生命周期使用this.$nextTick设置自动聚焦:

mounted(){
        // 页面渲染完成时自动聚焦到用户名输入框,ref="unameInput"
        this.$nextTick(() => {
            this.$refs.unameInput.focus();
        })
    }
回车自动聚焦下一个输入框:
1. 先在需要聚焦的el-input输入框上设置ref值:ref="pwdInput"。

2. 再用@keyup.enter设置回车自动聚焦:

    回车聚焦下一个输入框:@keyup.enter="this.$refs['pwdInput'].focus()"

    回车聚焦到登录按钮:@keyup.enter="login('form')"

    登录按钮(此处方法login):@click="login('former')"

完整代码:

<template>
<div class="login">
<el-form
label-position="top"
label-width="100px"
:model="user"
style="max-width: 460px"
>
<el-form-item label="用户名:">
<el-input
v-model="user.username"
ref="unameInput"
@keyup.enter="this.$refs['pwdInput'].focus()"/>
</el-form-item>
<el-form-item label="密码">
<el-input type="password"
v-model="user.password"
ref="pwdInput"
@keyup.enter="login('form')"/>
</el-form-item>
<el-button type="primary"
@click="login('former')"
>
登录
</el-button>
</el-form>
</div>
</template> <script>
export default {
name:'login',
data(){
return{
user:{username:'',password:''},
userList:[
{username:'admin',password:'123'},
{username:'11',password:'11'}
]
}
},
mounted(){
// 页面渲染完成时自动聚焦到用户名输入框,ref="unameInput"
this.$nextTick(() => {
this.$refs.unameInput.focus();
})
},
methods:{
// 登录
login(){
try{
this.userList.forEach((u) => {
if(u.username === this.user.username && u.password === this.user.password){
this.$router.push('/');
throw new Error('已匹配')
}
})
}catch(e){
return
};
alert("请输入正确用户名和密码。")
}
}
}
</script> <style>
.login{
/* 表单外容器样式 */
background:rgb(245, 240, 240);
height:320px;
width:450px;
margin:100px auto;
border-radius: 20px;
/* 表单位置水平垂直居中 */
display:flex;
justify-content: center;
align-items: center;
}
</style>

https://www.bilibili.com/read/cv19694317/

 

vue3 打开页面input框自动获得焦点的更多相关文章

  1. 如何让input框自动获得焦点

    项目中有个需求  一个用扫描枪输入的input框 为了避免每次都需要人为点击 需要做成当打开页面时该input框自动获取焦点 <input type="text" name= ...

  2. winform窗口打开后文本框的默认焦点设置

    原文:http://blog.csdn.net/kongwei521/article/details/6871411 winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种 ...

  3. input固定定位后,当input框获取到焦点时,会离开手机软键盘的解决方法

    前些天做页面时候遇到这样一个问题,将input框用position:fixed固定定位在最底部的时候,当Input获取焦点的时候,input框离开了手机软键盘,而不是吸附在软键盘上,效果如下图: 找了 ...

  4. input框自动填充内容背景颜色为黄色解决方法

    谷歌浏览器input自动填充内容,背景色会是黄色,想改的话: input:-webkit-autofill { box-shadow: 0 0 0px 1000px white inset;} 这种方 ...

  5. 解决input框自动填充为黄色的问题

    题原因:input 框会自动填充一个颜色  如图所示  解决方法 :通过动画去延迟背景颜色的显示  代码如下 input:-webkit-autofill, textarea:-webkit-auto ...

  6. 主动触发input框的失去焦点事件,阻止输入法跳出

    今天遇到个问题,我在手机做一个选择生日的功能,但是当我点击input框时,事件选择插件和输入法都弹出来了,很丑,然后就想阻止输入法弹出来, 网上一个方法是:在input框的获取焦点事件里,主动触发失去 ...

  7. input 框自动检测输入是否为数字

    最近做一个公众号,我这个菜鸡不得不学习很多东西,谁让老师要我一个人做这个项目呢? 好,进入正题,因为菜,所以很菜,但是百度很厉害啊,谁让我不好意思问老师,而且我也觉得问这么小的问题,太难以启齿.. 因 ...

  8. input输入框自动填充的问题

    火狐浏览器打开页面,input可以自动填充历史输入值,现在想无论input类型是type='text'还是'password'都禁止自动填充,因为我写的页面在input='text'时先检查是否有输入 ...

  9. android启动activity文本框不获得焦点

    在开发中,常常会碰到这种情况,打开一个activity后,第一个文本框自动获得焦点,同时会弹出软键盘输入框,这样很影响用户体验,现在来看解决方法. 我们先来看看为什么会出现上述情况,原因很简单,文本框 ...

  10. vue学习(十七) 使用自定义指令 使文本框获得鼠标焦点

    需求:当我们进入某个页面,页面中的第一个input会自动获得焦点 光标闪烁,代表可输入 <div id="app"> //v-focus 是自定义的 <input ...

随机推荐

  1. 记一个难以发现的 UB

    观察以下代码: vector<int> X, Y, A, val; inline int ls(int p) { return p << 1; } inline int rs( ...

  2. 一种面向业务配置基于JSF广播定时生效的工具

    作者:京东物流 王北永 姚再毅 李振 1 背景 目前,ducc实现了实时近乎所有配置动态生效的场景,但是配置是否实时生效,不能直观展示每个机器上jvm内对象对应的参数是否已变更为准确的值,大部分时候需 ...

  3. Angular8中共享模块,共享组件的写法(anular其他模块组件引用方法)

    Angular8中共享模块,共享组件的写法(anular其他模块组件引用方法) 第一步:全局创建一个共享的module 这里示例创建一个模块common-share 创建完成后,会生成两个文件 文件1 ...

  4. Python自动批量修改文件名称的方法

      本文介绍基于Python语言,按照一定命名规则批量修改多个文件的文件名的方法.   已知现有一个文件夹,其中包括班级所有同学上交的作业文件,每人一份:所有作业文件命名格式统一,都是地信1701_姓 ...

  5. Java 进阶P-6.6+P-7.1

    接口设计模式 接口 接口是纯抽象类 所有的成员函数都是抽象函数 所有的成员变量都是public static final 接规定了长什么样,但是不管里面有什么 实现接口 类用extends,接口用im ...

  6. 支付对接常用的加密方式介绍以及java代码实现

    京东科技 姚永健 一.术语表: 1.对称算法 加密解密密钥是相同的.这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥.对称算法的安全性依赖于密钥,泄漏密钥就意味着 ...

  7. 从 PyTorch DDP 到 Accelerate 到 Trainer,轻松掌握分布式训练

    概述 本教程假定你已经对于 PyToch 训练一个简单模型有一定的基础理解.本教程将展示使用 3 种封装层级不同的方法调用 DDP (DistributedDataParallel) 进程,在多个 G ...

  8. git操作出现 error: The following untracked working tree files would be overwritten by ...

    命令行:git clean -d -fx,作用是:删除没有git add 的文件 ,执行之后解决了 error: The following untracked working tree files ...

  9. 交叉熵损失CrossEntropyLoss

    在各种深度学习框架中,我们最常用的损失函数就是交叉熵,熵是用来描述一个系统的混乱程度,通过交叉熵我们就能够确定预测数据与真实数据的相近程度.交叉熵越小,表示数据越接近真实样本. 1 分类任务的损失计算 ...

  10. Diffusers库的初识及使用

    diffusers库的目标是: 将扩散模型(diffusion models)集中到一个单一且长期维护的项目中 以公众可访问的方式复现高影响力的机器学习系统,如DALLE.Imagen等 让开发人员可 ...