我注意到以下行为......
我在表单上有几个(至少4个)输入字段。如果我在第一个输入上处理“blur
”事件并在 NEXT 输入字段上设置“tabindex=-1
”(使用$(selector).prop("tabindex","-1");
在模糊事件处理程序内部),然后按“tab”(第一个输入字段为焦点),模糊处理程序触发,tabindex
设置为“-1
”,但字段不“跳过”! !
虽然,如果你再次点击第一个输入并再次点击标签,它将跳过第二个输入。
使用相同的场景,如果我改为在第三个字段上设置“tabindex=-1
”(在第一个输入的模糊处理程序中),则从第一个输入开始并点击标签,选项卡,它 DOES 跳过第三个字段。
此行为 IE 11 , Chrome 和 Firefox ....
SAME >似乎存在“时机”问题。很显然,浏览器已经确定了下一个“focus
”的字段,当它触发“blur
”处理程序时(因为在上设置了“tabindex=-1
” NEXT 字段不会“跳过”它。)
还有其他人看过这个问题吗?
感谢您的反馈! 谢恩
答案 0 :(得分:0)
您可以收听keydown
事件并检查密钥是否为tab
。 Demo
<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');
}
});
});