2

使用 ruby​​ on rails 表单生成器创建大量输入字段。

您可以在 Chrome/Firefox 中很好地使用标签,但在 IE9 中,标签已损坏。

所以我做了一些研究并决定tabIndex像这样设置输入:

<script>
$(document).ready(function(){
    var isIE = /*@cc_on!@*/false;
    if(isIE){
        var inputs = document.getElementsByTagName("input");
        for (var i = 0; i < inputs.length; i++){
            inputs[i].setAttribute("tabIndex", ""+i+"");
        }
    }
})
</script>

无论如何,相当快速的修复,我测试了它,现在inputs有一个tabIndex,但他们仍然没有正确地标记。为什么这不起作用?有没有人有更好的解决方案?

编辑:被破坏的标签是指这种行为:

我单击第一个输入字段点击选项卡,输入失去焦点,但下一个输入没有获得焦点。如果我再次点击制表符,那么我最终会再次将注意力集中在第一个输入上。这在一个永无止境的循环中重复。

我也知道text-areas并且selects不是输入,我现在要做的只是让某种标签功能正常工作。即使它跳过了这些元素。

链接到站点:IE9 中打开以查看错误的选项卡行为。链接到验证插件代码:就在这里

4

1 回答 1

0

可能尝试做

inputs[i].tabIndex = i

而不是 setAttribute,根据此处的 MS 示例:http: //msdn.microsoft.com/en-us/library/ie/ms534654 (v=vs.85).aspx

于 2013-01-03T18:42:07.243 回答