如何在不使用tabindex=0的情况下制表到下一个元素



结束时的重要解决方案

如何在不使用tabindex=0的情况下制表到下一个元素?

如果我以编程方式说:

$currentElement = $(document.activeElement);
$nextElement = $currentElement.next();
$nextElement.focus();

keydown回调函数中,为什么我仍然需要tabindex=0

只要我调用.focus(),为什么浏览器不能有效地跳转到那个元素?

此处添加

我现在意识到tabindex=0对于浏览器标记到下一个元素至关重要。现在这是最重要的,我需要一种不同的方法:

  1. 只有在keyup事件中,浏览器才会实际使用tabindex=0标记到下一个元素,并为其提供新的焦点!

  2. 与实际使用keydown事件切换到下一个元素相反。当前,关注的项目与keydown事件保持原样,并且将仅与keyup一起更改为下一个tabindex=0

这是我挑战的关键,因为我需要使用keydown,而不是等待keyup

我怎样才能做到这一点?

已解决

EG,当一个keydown处理程序看到我按下的Tab键时,我希望这个keydown处理程序创建一个keyup事件,并将这个Tab键发送到浏览器,以便我的keyup处理程序执行

$(.elem).keydown {
// create keyup Event and send this event to
// browser which will then execute my keyup handler
}
$(.elem).keyup {
// sent here
}

解决方案

$(.elem).keydown {
$(.elem).trigger("keyup");
}

您的意思是一次性密码输入吗?当您在第一个输入元素中输入内容时,焦点将跳转到下一个输入。这里我做了一个样品供您参考:

HTML:

<div class="form-class">
<input class="input-class" />
<input class="input-class" />
<input class="input-class" />
<input class="input-class" />
</div>

JS:

$('.input-class').keyup(function () {
if ($(this).val() !== "") {
//checking function logic here
$(this).next().focus();
}
})

相关内容

  • 没有找到相关文章

最新更新