加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular stop从提交输入密钥

发布时间:2020-12-17 17:24:11 所属栏目:安全 来源:网络整理
导读:我试图阻止Enter提交我的按钮,而是让它指向另一个功能.我尝试通过Host Listener捕获Enter,然后对其执行preventDefault()以阻止它被触发. 我的组件中的模板如下所示: mat-dialog-content class="dialog-content"{{data.content | translate}}/mat-dialog-con
我试图阻止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;
    }
}

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读