vue 实现enter登录
实现 Enter 键登录功能
在 Vue 中实现 Enter 键登录功能,可以通过监听键盘事件来触发登录操作。以下是几种常见的实现方式:
方法一:在输入框上监听 keyup.enter 事件

<template>
<div>
<input v-model="username" @keyup.enter="handleLogin" placeholder="用户名">
<input v-model="password" type="password" @keyup.enter="handleLogin" placeholder="密码">
<button @click="handleLogin">登录</button>
</div>
</template>
<script>
export default {
data() {
return {
username: '',
password: ''
}
},
methods: {
handleLogin() {
// 登录逻辑
console.log('登录操作', this.username, this.password)
}
}
}
</script>
方法二:在表单上监听 submit 事件
<template>
<form @submit.prevent="handleLogin">
<input v-model="username" placeholder="用户名">
<input v-model="password" type="password" placeholder="密码">
<button type="submit">登录</button>
</form>
</template>
<script>
export default {
data() {
return {
username: '',
password: ''
}
},
methods: {
handleLogin() {
// 登录逻辑
console.log('登录操作', this.username, this.password)
}
}
}
</script>
方法三:全局监听键盘事件

如果需要在页面任何位置按 Enter 键触发登录:
<template>
<div>
<input v-model="username" placeholder="用户名">
<input v-model="password" type="password" placeholder="密码">
<button @click="handleLogin">登录</button>
</div>
</template>
<script>
export default {
data() {
return {
username: '',
password: ''
}
},
mounted() {
window.addEventListener('keyup', this.handleKeyUp)
},
beforeDestroy() {
window.removeEventListener('keyup', this.handleKeyUp)
},
methods: {
handleLogin() {
// 登录逻辑
console.log('登录操作', this.username, this.password)
},
handleKeyUp(event) {
if (event.key === 'Enter') {
this.handleLogin()
}
}
}
}
</script>
注意事项
- 使用表单提交方式时,记得添加
.prevent修饰符阻止默认表单提交行为 - 全局监听方式需要注意组件销毁时移除事件监听,避免内存泄漏
- 确保输入框获得焦点时按 Enter 键才会触发登录
- 可以添加表单验证逻辑,确保输入有效时才允许登录
以上方法均可实现 Enter 键登录功能,可根据具体项目需求选择合适的方式。表单提交方式是更符合语义化的实现,推荐优先考虑。






