我已经使用角度6中的(keydown)事件来绑定按键输入
因此,在输入“ 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
}
}
但是问题是当按下Shift + Tab时,事件被触发并且功能继续,这是我不希望的。
我该怎么办
我只希望Shift + Tab在此输入上执行其默认功能。
答案 0 :(得分:1)
您需要在shift
条件下删除if
,如下所示:
public onKeydownMain(event): void {
if (!event.shiftKey && (event.key === "Enter" || event.key === "Tab")){
event.preventDefault();
// My Functionality goes here
}
}
对于KeyboardEvent
,您可以参考https://www.w3schools.com/jsref/obj_keyboardevent.asp
答案 1 :(得分:0)
请尝试避免在代码中使用shift键事件值16。 事件。用于显示关键事件值。
alert(event.which);
event.preventDefault();
if (event.keyCode!=16 && (event.keyCode === 13 || event.keyCode === 9 )) {
alert("Pressed enter");
}