tabindex=-1让普通元素获得焦点

tabindex:规定元素的 tab 键次序。
html中的tabIndex属性可以设置键盘中的TAB键在控件中的移动顺序,即焦点的顺序。

把控件的tabIndex属性设成1到32767的一个值,就可以把这个控件加入到TAB键的序列中。

这样,当浏览者使用TAB键在网页控件中移动时,将首先移动到具有最小tabIndex属性值的控件上,最后在具有最大tabIndex属性值的控件上结束移动。

如果有两个控件的tabIndex属性相同,则以控件在html代码中出现的顺序为准。

默认的tabIndex属性为0,将排列在在所有指定tabIndex的控件之后。

而若把tabIndex属性设为一个负值(如tabIndex=”-1”),那么这个链接将被排除在TAB键的序列之外。如果最初选择了[Tab]键,带这个输入栏的网页会将光标移动到firstName栏。

在给tabIndex特性赋值时,要留意几个问题。下面是几个赋值规则:

带0值tabIndex的元素根据源代码(或默认页面行为)进行排序。

大于0的tabIndex值设定其tab顺序。所有带正tabIndex值的元素出现在所有带0 tabIndex值的元素之前。

如果你犯了一个错误,把同一个tabIndex赋予给多个元素,像其它元素一样,它们会以一个0值tabIndex进行处理。

将tabIndex赋值为-1,则在使用[Tab]键时,此元素被忽略。注意:如果使用-1值时,onfocus与onblur事件仍被启动。tabIndex的值可为0至32767之间的任意数字

默认情况下,只有链接元素和表单元素可通过tab按键获得焦点。
如果对其它元素使用tabindex属性也可以获得焦点,并可以实现focus()方法。
如果其它元素通过tab键获得焦点,只需将tabindex值为-1

浏览器支持

几乎所有浏览器均tabindex属性,除了Safari。

定义和用法

tabindex 属性规定元素的 tab 键控制次序(当 tab 键用于导航时)。

提示和注释

注释:以下元素支持 tabindex 属性:<a>,<area>,<button>,<input>,<object>,<select>以及<textarea>

语法

<element tabindex="number">

属性值
1
2
3
4
5
6
7
8
9
10
<table>
<th>
<dd>值</dd>
<dd>描述</dd>
</th>
<td>
<dd>number</dd>
<dd>规定元素的 tab 键控制次序(1 是第一个)。</dd>
</td>
</table>

参考:
1.https://blog.csdn.net/tom0008668/article/details/64904752
2.http://www.w3school.com.cn/tags/att_standard_tabindex.asp