Angular stop从提交输入密钥

前端之家收集整理的这篇文章主要介绍了Angular stop从提交输入密钥前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图阻止Enter提交我的按钮,而是让它指向另一个功能.我尝试通过Host Listener捕获Enter,然后对其执行preventDefault()以阻止它被触发.

我的组件中的模板如下所示:

<mat-dialog-content class="dialog-content">{{data.content | translate}}</mat-dialog-content>
<div>
  <mat-button-toggle-group>
    <button type="button" matDialogClose (click)="dialogRef.close()">{{uppercase }}</button>
    <button type="button" (click)="dialogRef.close(true)" cdkFocusInitial>{{uppercase}}</button>
  </mat-button-toggle-group>
</div>

在我的组件代码的顶部:

export enum KEY_CODE {
  ENTER_KEY = 13
}

在我的导出类中:

@HostListener('window:keyup',['$event'])
keyEventUp(event: KeyboardEvent) {

    if (event.keyCode === KEY_CODE.ENTER_KEY) {
      event.preventDefault();
      event.stopPropagation();
      return false;
    }
}
@H_301_28@解决方法
DOM事件携带名为$event的信息的有效负载.可以在任何输入事件上使用它,即(输入),(keydown),(点击)等.

可以跳过使用Hostlistner并对$event应用preventDefault,如下所示:

(keydown.enter)= “$event.preventDefault()”

在按钮上:

...
<button ... (keydown.enter)="$event.preventDefault()" ...>...</button>
...

要么:

HTML:

...
<button ... (keydown.enter)="prevent($event)" ...>...</button>
...

打字稿:

...
prevent(event){
 event.preventDefault();
}
...

Demo

猜你在找的Angularjs相关文章