Jquery选项,键盘专注于隐藏选项

时间:2011-09-14 10:40:26

标签: jquery autocomplete options

我有一个带有一些选项的select标签,其中一些是隐藏的,有些是否隐藏, 当我按下键盘上的任意键时,焦点也会转到隐藏选项。

示例:

  <select id='myselect'>
    <options id='a'>a</options>
    <options id='b' style ='display:none'>b</options>
    <options id='c'>c</options>
    <options id='b'>b</options>
    </select>

上面我有一个有4个选项的选项,现在只有第1个和第4个可见,因为我保持第二个隐藏。

现在当我按下键盘上的'b'时,它会转到隐藏选项,即我必须按键盘上的2次'b'才能达到第4选项。

谁能告诉我怎么能解决这个问题?

当我按下键盘上的任意键时,焦点应该只考虑非隐藏选项。

提前致谢

2 个答案:

答案 0 :(得分:0)

使用HTML,你有Classes和ID,因为我相信你知道,你可以在一个页面上拥有任意数量的课程,但你不能在一个页面上拥有多个ID,这就是你的问题所在所在。 HTML页面绝不能包含多个ID。

之所以这样,是因为ID用于识别页面上的单个元素(即使它不可见,也不代表它不存在。

您需要重命名您的选项ID,以便它们完全不同。

答案 1 :(得分:0)

即使所有标签都有唯一ID,也可以通过键盘选择隐藏选项。为了避免这种情况,也必须禁用该元素。

<select id='myselect'>
  <option id='a'>a</option>
  <option id='b' disabled style ='display:none'>b</option>
  <option id='c'>c</option>
  <option id='b2'>b</option>
</select>

在jquery 1.6+中,这可以通过使用.prop('disabled',false)来实现,对于较低版本.attr('disabled','disabled')

我知道这个问题有点陈旧,但我遇到了类似的情况,这个问题不断出现......

编辑: 隐藏选项标签似乎只适用于Firefox。为了获得更好的兼容性,应该删除选项而不是隐藏它们。