gpt4 book ai didi

javascript - Angular 停止 Enter Key 提交

转载 作者:太空狗 更新时间:2023-10-29 17:44:16 27 4
gpt4 key购买 nike

我试图阻止 Enter 提交我的按钮,而是让它指向另一个函数。我尝试通过主机监听器捕获 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 的信息负载。可以在任何输入事件上使用它,即 (input)、(keydown)、(click) 等。

可以跳过 HoSTListner 的使用并在 $event 上应用 preventDefault,如下所示:

(keydown.enter)="$event.preventDefault()"

在按钮上:

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

或:

HTML:

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

typescript :

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

Demo

关于javascript - Angular 停止 Enter Key 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50010345/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com