论坛首页 Web前端技术论坛

tabindex的微妙使用

浏览 5345 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-12-07   最后修改:2010-12-07

         大家可能会注意到input,select,textArea等文本框都会有一个属性tabindex,但是都没有用过这个tabindex吧、
简单说一下tabindex;它主要是设置页面上使用Tab键改变页面上文本框获取焦点的顺序。它的值为数字,1,2,3。。。
默认进入页面,光标(即焦点)会选中左上方第一个文本框。 

目前项目中遇到打开个子窗口时候,不想让子页面的光标定位到默认的文本框中,该怎么办呢?

<input type='text' name = 'name1'/>
<select name = 'name2'><option value='1'></option></select>
<textArea name="name3" cols='2' rows='2'></textArea>

 默认页面光标定位到type="text"中,如果我想让光标定位到select文本框上,目前有两个方法:

 

 1、一般有人都会在该页面的最后部分加上一个JavaScript、     

 <script langage="text/javascript">
         document.form.name2.focus();
   </script>

      但是这种方法偶尔会js报错:"由于该控件目前不可见、未启用或其类型不允许,因此无法将焦点移向"等等、经测试,发现只要这个页面打开的速度慢的时候就会报错。

2、接下来的方法就要使用本文所说的tabindex了、

   <input type='text' name = 'name1' tabindex='3'/>
   <select name = 'name2'><option value='1' tabindex='1'></option></select>
   <textArea name="name3" cols='2' rows='2' tabindex='2'></textArea>

如果想让光标定位到哪个文本框,则把该文本框的tabindex设置为1,即1的优先级最高,依次排序即可、

 

 

   发表时间:2010-12-08  
<script langage="text/javascript">
这个写法不好,现在都用<script type="text/javascript">;

document.form.name2.focus();  
这个写法也不好,兼容性有问题,最好用document.getElementById。

tabindex,俺基本不用,特别是表单项特别多的时候,就显得很麻烦。

如果真要用js定位到某个位置,可以将方法挂在window.onload下,就不会有那种报错。


当然是个人意见,仅供参考。
0 请登录后投票
   发表时间:2010-12-08  
xyztony1985 写道
<script langage="text/javascript">
这个写法不好,现在都用<script type="text/javascript">;

document.form.name2.focus();  
这个写法也不好,兼容性有问题,最好用document.getElementById。

tabindex,俺基本不用,特别是表单项特别多的时候,就显得很麻烦。

如果真要用js定位到某个位置,可以将方法挂在window.onload下,就不会有那种报错。


当然是个人意见,仅供参考。


呵呵,谢谢!放在window.onload下,当时第一想到的就是它,但是测试发现不起作用,当时很郁闷,刚又测试了一下可以了,应该是浏览器的缓存吧、
这样虽说可以,但是还需要执行一个JavaScript,比起来tabindex还是麻烦了点。(表单项多的时候只要定位一两个tabindex就可以了啊)
0 请登录后投票
   发表时间:2010-12-13  
xyztony1985 写道
<script langage="text/javascript">
这个写法不好,现在都用<script type="text/javascript">;


在HTML5里面更简单,直接用 <script></script> 。
0 请登录后投票
   发表时间:2010-12-13  
刚测试了一把,<script></script>在ie 8,ff3.6下面 可以直接支持。
0 请登录后投票
   发表时间:2010-12-14  
<script></script>
long long ago就没问题,可以试试IE6
0 请登录后投票
   发表时间:2010-12-14  
riemann 写道
<script></script>
long long ago就没问题,可以试试IE6

IE6也畅通无阻的、
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics