角度6中的(keydown)事件上的多个键绑定 [英] Multiple key binding on (keydown) event in angular 6

查看:82
本文介绍了角度6中的(keydown)事件上的多个键绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已使用角度6中的(keydown)事件来绑定按键输入

I have used (keydown) event in angular 6 to bind key inputs

因此,在输入"Tab"和"Enter"键时,我必须执行我的功能并添加了一个event.prevent default

So on enter of 'Tab' and 'Enter' key i have to do my functionality and added a event.prevent default

但是,当输入Shift + Tab时,它也可以阻止该事件

But when Shift + Tab is entered it is also preventing the event

.html

<input type="text" [(ngModel)]="Result1 (keydown)="onKeydownMain($event)"  >

我不希望(keydown.shift.tab)事件分开..

I dont want (keydown.shift.tab) event seperate..

.ts

public onKeydownMain(event): void {
    if (event.key === "Enter" || event.key === "Tab") {
                event.preventDefault();
                   // My Functionality goes here
    }
}

但是问题是当按下Shift + Tab时,事件被触发并且功能继续运行,这是我不希望的.

But the problem is when Shift + Tab is pressed , event is fired and functionality goes on, which i don't want.

我怎么去这个

我只希望Shift + Tab在此输入上执行其默认功能.

I just want Shift + Tab to perform its default functionality on this input.

推荐答案

您需要在 if 条件下删除 shift ,如下所示:

You need to remove the shift in the if condition like this:

public onKeydownMain(event): void {
       if (!event.shiftKey && (event.key === "Enter" || event.key === "Tab")){
                event.preventDefault();
                   // My Functionality goes here
        }
    }

您可以参考 https://www.w3schools.com/jsref/obj_keyboardevent.asp用于 KeyboardEvent

这篇关于角度6中的(keydown)事件上的多个键绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆