有没有办法只在HTML表单的某些字段上使用tabindex?

时间:2012-10-26 14:31:36

标签: javascript html forms tabindex

我有一套8种复杂形式(70多个字段)用于存储团队报告。表单的一部分在表中有4个列宽和2个高(下面的名字在顶部和姓氏)。当用户填写表单时,tab键将它们跨越名字,然后转到姓氏,因为这是它们在源中的顺序(一个TR中的名字和下一个TR中的姓氏)。显然,如果tab键从名字到名字,然后到下一个名字,我的用户会更容易。

我知道我可以使用tabindex修复此问题,但我真的不想对所有500多个字段进行tabindex,只需修复这4个字段即可。

我是否可以通过某种方式将表格标注为表格的一部分?我尝试过,但它不会选择其他字段。有一些聪明的JS解决方案吗?或者某些方法对这些字段进行分组,这样默认标签会将我带入组中,然后我可以在那里进行tabindex?

如果你愿意,可以叫我懒惰......但是我正在努力为自己节省很多时间来剪切和粘贴并犯错误。

干杯!

1 个答案:

答案 0 :(得分:2)

你能做的最好的事情就是在名字输入相同的tabIndex之前给出你所有的输入,比第一个名字输入少1,然后在名字后输入相同的tabIndex给出所有的输入。比输入的姓氏高1。

<input type="text" tabIndex="1"><br>
<input type="text" tabIndex="1"><br>
...
<table>
    <tr>
        <td><input type="text" tabIndex="2"></td>
        <td><input type="text" tabIndex="4"></td>
        <td><input type="text" tabIndex="6"></td>
        <td><input type="text" tabIndex="8"></td>
    </tr>
    <tr>
        <td><input type="text" tabIndex="3"></td>
        <td><input type="text" tabIndex="5"></td>
        <td><input type="text" tabIndex="7"></td>
        <td><input type="text" tabIndex="9"></td>
    </tr>
</table>
<input type="text" tabIndex="10"><br>
<input type="text" tabIndex="10"><br>
...

我认为这就是你想要的:http://jsfiddle.net/9ffWs/

它仍然需要你为每个输入添加一个tabIndex,但至少它是非常受控制的,应该没有错误。