首页 > 解决方案 > 角度6中(keydown)事件的多个键绑定

问题描述

我在 Angular 6 中使用 (keydown) 事件来绑定键输入

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

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

.html

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

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

.ts

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

但问题是当按下 Shift + Tab 时,事件被触发并且功能继续,这是我不想要的。

我怎么能这样

我只希望 Shift + Tab 对此输入执行其默认功能。

标签: javascripthtmlangulartypescriptangular6

解决方案


您需要像这样删除shift条件if

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.aspKeyboardEvent


推荐阅读