Javascript 无法跳过tabindex=”的下一个输入字段-1“;

Javascript 无法跳过tabindex=”的下一个输入字段-1“;,javascript,jquery,Javascript,Jquery,我注意到以下行为 我在表单上有几个(至少4个)输入字段。如果我在第一个输入上处理“blur”事件,并在下一个输入字段上设置“tabindex=-1”(在模糊事件处理程序中使用$(选择器).prop(“tabindex”,“-1”);),然后我按“tab”(第一个输入字段处于焦点),模糊处理程序将触发,tabindex设置为“-1”,但该字段不是“跳过的” 尽管如此,如果您在第一个输入中单击back并再次单击tab,它将跳过第二个输入 使用相同的场景,如果我在第三个字段上设置“tabindex=-

我注意到以下行为

我在表单上有几个(至少4个)输入字段。如果我在第一个输入上处理“
blur
”事件,并在下一个输入字段上设置“
tabindex=-1
”(在模糊事件处理程序中使用
$(选择器).prop(“tabindex”,“-1”);
),然后我按“tab”(第一个输入字段处于焦点),模糊处理程序将触发,
tabindex
设置为“
-1
”,但该字段不是“跳过的”

尽管如此,如果您在第一个输入中单击back并再次单击tab,它将跳过第二个输入

使用相同的场景,如果我在第三个字段上设置“
tabindex=-1
”(在第一个输入的模糊处理程序中),然后从第一个输入开始,点击tab,tab,它会跳过第三个字段

这在IE 11ChromeFirefox上的行为方式相同

似乎有一个“时机”问题。显然,当浏览器触发“
blur
”处理程序时,它已经决定了下一步要“聚焦”
focus
“哪个字段(因为在next字段上设置“
tabindex=-1
”不会“跳过”它)

还有谁见过这个问题吗

谢谢你的反馈!
Shayne

您可以收听
keydown
事件,并检查键是否为
选项卡


$(函数(){
$('#first').keydown(函数(ev){
如果(ev.which==9){//tab键
$('#second').attr('tabindex','-1');
}
});
});
<input type="text" id="first">
<input type="text" id="second">
<input type="text" id="third">

$(function() {
    $('#first').keydown(function(ev) {
    if(ev.which === 9) { //tab key
        $('#second').attr('tabindex', '-1');
    }
  });
});