如何检查按钮是否具有焦点?

时间:2019-01-25 13:52:17

标签: html angular typescript button

我有一个表单,我想使用 ENTER 键在各个字段之间切换,但是我也想在使用 ENTER 键时提交表单当我突出显示(通过点击/输入)发送按钮

时。

有什么办法可以确定输入按钮是否已聚焦?

我在想类似的东西:

<form (keydown.enter)="isSendFocussed($event)">
    <input #input1> <!-- input 1 -->
    <input #input2> <!-- input 2 -->
    <input #input3> <!-- input 3 -->
    <button #myButton (click)="sendForm()">Send</button>
</form>

然后我将为isSendFocussed(event)函数做一些事情,例如:

@ViewChild('myButton') btn: ElementRef<HTMLInputElement>

isSendFocussed(event) {
    // if (!button is focussed) {
    //     block default functionality and tab across
    // } else {
    //     send form
    // }
}

2 个答案:

答案 0 :(得分:5)

您可以像这样使用焦点和模糊事件:

<button
   (click)="onFavPopupClose()"
   (focus)="isBtnPopCloseFocused = true" 
   (blur)="isBtnPopCloseFocused = false">
</button>

答案 1 :(得分:1)

您可以在按钮元素上使用(focus)来检查它是否处于焦点状态。

模板

<button (focus)="isFocus($event)"></button>

组件

isFocus(evt): void {
  console.log('Button is focused', evt);
}