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'));
        }
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值