如何使用 JS 获取焦点表单元素?

How can I get focused form element by using JS?

例如

<form>
    <div class="form-control">
       <input type="text" name="username">
    </div>
    <div class="form-control">
       <input type="text" name="password">
    </div>
</form>

当光标在名称为 username 的输入中时按 tab 键时,如何获取名称为 password[=24 的新焦点元素=] 使用 JS

当我用这段代码获取元素时;

document.addEventListener('keydown', function(evt) 
{

    if (evt.keyCode === 9) {
       console.log(document.activeElement);
    }

});

这返回了名称为 username 的 input-1,但我想获得 password 输入。我怎么能?

您的事件侦听器绑定到 keydown,这意味着它会在实际按键按下 "complete"(按下然后向上)之前触发,因此事件发生时焦点实际上并没有改变处理程序执行。更改为 keyup,焦点将在您的事件处理程序之前更改。

document.addEventListener('keyup', function(evt) 
{

    if (evt.keyCode === 9) {
       console.log(document.activeElement);
    }

});
<form>
    <div class="form-control">
       <input type="text" name="username">
    </div>
    <div class="form-control">
       <input type="text" name="password">
    </div>
</form>