键盘事件未调度以角度输入键事件

问题描述 投票:0回答:1

我在角度应用程序中使用materialize-css的芯片组件。要创建筹码,我必须按回车键。但在移动设备中,没有输入密钥。

所以我在chip的input元素上添加了textInput事件,如果用户按下逗号,它将调度enter键事件。

__element.addEventListener('textInput', function (__event) {
      const keyCode = __event.data.charCodeAt(0);
      const COMMA_KEY_CODE = 44;
      if (keyCode == COMMA_KEY_CODE) {
        __event.preventDefault();
        __event.currentTarget.dispatchEvent(new KeyboardEvent('keydown', { key: "Enter" }));
      }
});

按下逗号我正在接收事件,但它没有调度enter事件。

但是,如果我使用以下行调度输入键事件

__event.currentTarget.dispatchEvent(new KeyboardEvent('keydown', { keyCode: 13 }));

表明

Argument of type '{ keyCode: number; }' is not assignable to parameter of type 'KeyboardEventInit'.
  Object literal may only specify known properties, and 'keyCode' does not exist in type 'KeyboardEventInit'.

但是如果我直接在控制台上运行它,相同的代码也可以工作。

关于GitHub的问题:https://github.com/Dogfalo/materialize/issues/5722

javascript angular keyboard-events
1个回答
0
投票

这可以通过将keydown事件绑定到您的输入并在事件中添加enter键名来在Angular中实现。

<input (keydown.enter)="onKeydown($event)">

事件的定义可能是

onKeydown(event) {
    //This code will run only when an enter key is pressed
}
© www.soinside.com 2019 - 2024. All rights reserved.