vue3 +elementPlus 实现回车Enter登录

1、submit() 为登录事件,@keydown.enter="keyDown()"为用户按下enter键触发的事件

<el-button @click="submit()" @keydown.enter="keyDown()">登录</el-button>

2、keyDown()

//点击回车键登录
const keyDown = (e) => {
	if (e.keyCode == 13 || e.keyCode == 100) {
		submit()
	}
}

3、在onMounted()绑定监听事件

onMounted(() => {
	//绑定监听事件
	window.addEventListener('keydown', keyDown)
});

4、在onUnmounted()绑定销毁事件

onUnmounted(() => {
	//销毁事件
	window.removeEventListener('keydown', keyDown, false)
});

补充知识:

1、addEventListener() 和removeEventListener()

addEventListener() 方法用于向指定元素添加监听事件。同一元素目标可重复添加,不会覆盖之前相同事件,配合 removeEventListener() 方法来移除事件。

1)addEventListener() 

target.addEventListener(eventfunctionuseCapture)

  • target文档节点、document、window 或 XMLHttpRequest。
  • event字符串,事件名称,不用带 "on" 前缀,比如“click”、“keydown”等。
  • function实现了 EventListener 接口或者是 JavaScript 中的函数。当目标对象事件触发时,会传入一个事件参数,参数名称可自定义,如填写event,不需要也可不填写。 事件对象的类型取决于特定的事件。例如, “click” 事件属于 MouseEvent(鼠标事件) 对象。
  • useCapture是否使用捕捉(触发类型),布尔型,可空,true - 事件在捕获阶段执行 ,false - 事件在冒泡阶段执行,默认是false。

2)removeEventListener:

target.removeEventListener(eventfunctionuseCapture)

  • target文档节点、document、window 或 XMLHttpRequest。
  • event字符串,必须。要移除的事件名称,不用带 "on" 前缀,比如“click”、“mouseover”、“keydown”等。
  • function必须。指定要移除的函数。。
  • useCapture可选。布尔值,指定移除事件句柄的阶段。true - 在捕获阶段移除事件句柄,false- 默认。在冒泡阶段移除事件句柄,如果添加两次事件句柄,一次在捕获阶段,一次在冒泡阶段,你必须单独移除该事件。

2、键盘事件

  • keydown:当用户按下键盘上的任意按键时触发,如果按住不放,会重复触发此事件。
  • keyup:当用户释放键盘上的按键时触发。
  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是一个简单的基于 Vue3 和 Element Plus 实现登录界面示例: ```html <template> <div class="login-wrapper"> <el-card class="login-card"> <h3>用户登录</h3> <el-form :model="form" :rules="rules" ref="form" label-width="80px"> <el-form-item label="用户名" prop="username"> <el-input v-model="form.username"></el-input> </el-form-item> <el-form-item label="密码" prop="password"> <el-input type="password" v-model="form.password"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="handleSubmit">登录</el-button> </el-form-item> </el-form> </el-card> </div> </template> <script> import { ref } from 'vue' import { ElButton, ElCard, ElForm, ElFormItem, ElInput } from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' export default { components: { ElButton, ElCard, ElForm, ElFormItem, ElInput, }, setup() { const form = ref({ username: '', password: '', }) const rules = { username: [{ required: true, message: '请输入用户名', trigger: 'blur' }], password: [{ required: true, message: '请输入密码', trigger: 'blur' }], } const handleSubmit = () => { const formRef = refs.form formRef.validate((valid) => { if (valid) { console.log('登录成功', form.value) // 这里可以添加登录逻辑 } else { console.log('登录失败') return false } }) } return { form, rules, handleSubmit, } }, } </script> <style> .login-wrapper { display: flex; justify-content: center; align-items: center; height: 100vh; } .login-card { width: 400px; margin: 0 auto; padding: 20px; } </style> ``` 上述示例代码中使用了 Element Plus 中的 `ElButton`、`ElCard`、`ElForm`、`ElFormItem` 和 `ElInput` 组件来构建登录界面。其中,`form` 和 `rules` 分别用于定义表单的数据和验证规则。`handleSubmit` 方法用于处理表单提交事件,当表单验证通过后,可以在该方法中添加登录逻辑。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值