在vue中点击回车登录

在项目中需要加一个小功能,不用点登录框,直接回车就能登录,
1.@keyup事件
在输入框上面加keyup事件

 <input @keyup.enter="submit">

如果使用element 的

<input @keyup.enter.native="submit">

这种方法具有很大的局限性.需要获得input框的焦点(focus)才能够正常触发,不然就会失效
2.document.addEventListener监听keyup事件
语法如下

element.addEventListener(event, function, useCapture)
//event 必须。字符串,指定事件名。
//function 必须。指定要事件触发时执行的函数。
//useCapture 可选。布尔值,指定事件是否在捕获或冒泡阶段执行。

1.我们先创建一个键盘按下事件

    enterKey(event) {
      console.log(event.keyCode) //打印出按键的keyCode
       if (event.keyCode === 13) {
       this.login() 
    },

2.监听enterKey事件,并且在mounted中执行

	mounted() {
  	  this.enterKeyup()
    },
    methods:{
        enterKeyup() {
      document.addEventListener("keyup", this.enterKey);
    },
    }

现在已经可以实现按下回车登录了,但是还有一个问题
如果退出再次登录,会发现this.login执行两次,并且随着次数的增加,this.login执行的次数越多,有点类似于setTimeout,需要清除
所以我们需要在创建一个方法

    enterKeyupDestroyed() {
      document.removeEventListener("keyup", this.enterKey);
    },

移除监听事件,然后在页面销毁的时候执行此方法

  destroyed() {
    this.enterKeyupDestroyed()
  },

@keyup方法总结

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值