javascript - Angular 6 中的 (keydown) 事件的多键绑定(bind)

标签 javascript html angular typescript angular6

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

所以在输入“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
    }
}

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

我该怎么做

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

最佳答案

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

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

关于javascript - Angular 6 中的 (keydown) 事件的多键绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52665812/

相关文章:

javascript - jQuery ajax 调用竞争条件?

html - Windows Phone 8 和 Html5 视频 : Is it possible to play video inline in webpage

angular - 如何使用自定义指令访问绑定(bind)到 DOM 元素的 $event 的目标?

angular - 处理 Ionic 3 应用程序 401 错误的正确工作流程

javascript - 无法读取 null 的属性 'style'

javascript - 按属性从子节点中选择节点

html - HTML <source> 可以用于多 CDN 回退吗?

html - 导航元素 float 不受约束

angular - 使用打开的图标包引用 .scss 时生成错误

javascript - 纯粹遵循 Redux 方式并进行 Dump |展示组件