我有一个带有一些选项的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选项。
谁能告诉我怎么能解决这个问题?
当我按下键盘上的任意键时,焦点应该只考虑非隐藏选项。
提前致谢
答案 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。为了获得更好的兼容性,应该删除选项而不是隐藏它们。