Bootstrap

element ui 提交按钮绑定键盘事件

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'));
        }
;