【问题标题】:Jquery options , keyboard focus on hidden optionsJquery选项,键盘专注于隐藏选项
【发布时间】:2011-09-14 10:40:25
【问题描述】:

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

例子:

  <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、第 3 和第 4 个可见,因为我将第二个保持为隐藏状态。

现在当我从键盘按“b”时,它会进入隐藏选项,即我必须从键盘按 2 次“b”才能到达第 4 个选项。

谁能告诉我如何解决这个问题?

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

提前致谢

【问题讨论】:

    标签: jquery autocomplete options


    【解决方案1】:

    我相信你知道,在 HTML 中,你有类和 ID,你可以在一个页面上拥有任意数量的类,但你不能在一个页面上拥有多个 ID,这就是你的问题所在谎言。一个 HTML 页面不能有多个 ID。

    这是因为 ID 用于识别页面上的单个元素(即使它不可见,也不意味着它不存在。

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

    【讨论】:

      【解决方案2】:

      即使所有标签都有唯一的 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 中有效。为了更好的兼容性,应该删除选项而不是隐藏它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-11
        • 2011-07-16
        • 1970-01-01
        相关资源
        最近更新 更多