Javascript 显示时输入字段的制表符:无
想象一下:Javascript 显示时输入字段的制表符:无,javascript,jquery,html,input,tabindex,Javascript,Jquery,Html,Input,Tabindex,想象一下: <div> <input tabindex="1"> </div> <div style="display:none"> <input tabindex="2"> </div> <div> <input tabindex="3"> </div> 现在,我正试图用tab键遍历所有这些输入字段,但他并没有进入tabindex 2。从逻辑上讲,这不起作
<div>
<input tabindex="1">
</div>
<div style="display:none">
<input tabindex="2">
</div>
<div>
<input tabindex="3">
</div>
现在,我正试图用tab键遍历所有这些输入字段,但他并没有进入tabindex 2。从逻辑上讲,这不起作用,但是当他在tabindex 1上并且应该转到tabindex 2,div变为可见时,我如何实现这一点呢
谢谢如评论中所述,使您的
div
具有不透明度:0
。当您关注隐藏的输入时,将其设置为opacity:1
。比如:
<div>
<input tabindex="1"/>
</div>
<div style="opacity: 0">
<input tabindex="2"/>
</div>
<div>
<input tabindex="3"/>
</div>
或者您可以使用height
(height:0
/height:auto
):
但是从用户体验的角度来看,在你不期望的地方有一个额外的
输入
弹出窗口是很奇怪的。我对这里给出的建议有问题,于是决定使用左:-999px;位置:绝对位置代码>只需在悬停或键盘导航上设置左侧(使用tabindex)
我只想说基本上height:0
并不总是有效的,在这种情况下,极端translate:transformX(-999)
或更简单的left:-999px
与位置:absolute
同样有效。设置opacity:0
,我认为这会使tabindex起作用。然后,当你聚焦在该字段上时,你会移除不透明度
。
$('div:eq(1) input').on('focus', function() {
$(this).parent().css('opacity','1');
}).on('blur', function() {
$(this).parent().css('opacity','0');
});