代码之家  ›  专栏  ›  技术社区  ›  Ken Paul

在IE中,是否有一个功能齐全的下拉列表替代HTML SELECT?

  •  1
  • Ken Paul  · 技术社区  · 17 年前

    我们决定 previous question IE不支持HTML SELECT的许多功能。根据您的经验,您是否会推荐一个满足以下要求的替代小部件?

    1. 尊敬 contentEditable 属性(如果为true,则不允许更改选择)
    2. 尊敬 disabled 单个选项的属性(将其显示为“灰色”或带有穿透字体,并使其不可选择)
    3. 支持选项组( OPTGROUP 元素)
    4. 支架 style 选项,例如 border 和 margin 在 SELECT 以及所有子元素
    5. 支持动态添加和删除 OPTION 和 OPTGROUP 要素
    6. 在IE 6及以上版本中支持上述功能

    编辑:正如@Joel Coehoorn所指出的,IE目前支持上述第3项和第5项。将它们包含在这里是为了确保它们在替换小部件中不会被忽视。

    2 回复  |  直到 9 年前
        1
  •  2
  •   Joel Coehoorn    17 年前

    最后检查IE6+是否支持#3和#5,您可以(错误地)使用OPTGROUP来解决大多数其他项目。

    你可以通过一个内部没有选项的optgroup来实现这一点,如下所示:

    <optgroup label="--"></optgroup>
    

    你可以随心所欲地制作标签,但关键是你最终会得到一个看起来像普通选项但无法选择的项目。这为各种乐趣打开了大门:

    • 您可以通过将特定项目添加为optgroup来禁用它们
    • 您可以通过将除当前选项外的所有选项编码为optgroup来阻止选择更改(如果需要,可以使用其他文本键表示它们已禁用)
    • 您可以使用空白、--或&mdash;标签表示简单的分隔符,而不是整个组。

    这占了#1和#2的大部分;在你的列表中排名第二,至少是功能点。

    “(错误)使用”的原因是,这不会通过大多数html验证器。然而,这个技巧在所有主流浏览器上都有效。

        2
  •  1
  •   mkoryak    16 年前

    我正在写这样一个小部件。我计划在下一个版本中实现optgroup,希望能在几天内实现,因为我已经取得了良好的进展。

    demo page

    svn

    推荐文章