html部分
<div class="box" id="app">
<h2>用户登录</h2>
<el-form :model="loginForm" :rules="rules" ref="loginForm" >
<el-row >
<el-col :span="20" :offset="2"> <el-form-item prop="username">
<el-input placeholder="请输入账号" id="username" v-model="loginForm.username" suffix-icon="el-icon-user-solid" autocomplete="off"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row >
<el-col :span="20" :offset="2">
<el-form-item prop="password">
<el-input placeholder="请输入密码" show-password id="password" v-model="loginForm.password" suffix-icon="el-icon-lock" ></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="210">
<el-col :span="4" :offset="1"> <el-button type="primary" id="login" @click="login('loginForm')" @keydown.enter.native="login('loginForm')">登录</el-button></el-col>
<el-col :span="4"><el-button type="info" @click="toRegiest" >注册</el-button></el-col>
</el-row>
</el-form>
</div>
主要是为登录按钮添加enter键盘事件 之所以不用sumit 是因为 它会覆盖element ui自带的校验规则 所以使用键盘事件来触发
通过@keydown.enter.native=xxx()
方法名任意 为了方便可以与click事件方法名尽量保持一致 减少不必要的麻烦
由于vue的原因 所以键盘事件的后面需要加.native
否则 这个事件不会生效
然后创建钩子函数 在data对象创建后 初始化这个事件
created: function() {
document.addEventListener('keydown', (e) => {
let key = window.event.keyCode;
if (key == 13) {
// 13是enter键的键盘码 如果等于13 就调用click的登录方法
this.login('loginForm');
}
})
},
养成好习惯 在实例销毁之前 去除这个键盘事件 即可
beforeDestroy(){
//这里的 this.login('loginForm') 指的是键盘事件的方法名
document.removeEventListener('keydown', this.login('loginForm'));
}