代码之家  ›  专栏  ›  技术社区  ›  Wil

在动态表中垂直然后水平设置tabindex

  •  0
  • Wil  · 技术社区  · 14 年前

    我有一个页面,它当前正在以表格格式生成动态创建的文本框。用户请求将制表符顺序从水平-垂直更改为垂直-水平。我知道您可以使用tabindex属性来控制制表符的顺序,但我一生都无法找到正确的方法来正确地获取文本框的序列号。我想这更像是个数学问题!

    仅供参考,这些文本框是在循环两个不同的集合时生成的。循环第一个集合以生成行,对于每一行,循环第二个集合(第一个集合对象的属性)以创建列。

    任何帮助都将不胜感激。谢谢!

    1 回复  |  直到 14 年前
        1
  •  4
  •   Chris Van Opstal    14 年前

    您需要三个变量才能使其工作:

    • 总行数
    • 当前行索引
    • 当前列索引

    然后,通过将tabindex设置为:

    totalRowCount * currentColumnIndex + currentRowIndex + 1
    

    对于一个五行三列的表,上面的计算将把tab顺序呈现为:

    1   5   10
    2   6   11
    3   7   12
    4   8   13 
    5   9   14
    

    更新: 威尔,谢谢你指出这一点。我已经更新了示例。我还检查了 W3C spec (我可能应该先这么做)它澄清了行为:

    不支持 tabindex属性或支持它 为其分配值“0”将被导航 下一步。这些元素在 他们在角色中出现的顺序 溪流。