将标签关联到类不是id的输入?

Eva*_*nss 21 html forms

我知道您可以使用for和id属性将标签与输入相关联.但是你可以使用一个类而不是id吗?谢谢

<label for="rooms">Number of rooms</label>
<select id="rooms">
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
</select>
Run Code Online (Sandbox Code Playgroud)

Mad*_*iha 44

类不是唯一的(你可以有多个具有相同类的元素),所以没有.

如果要在不使用ID的情况下将标签与输入相关联,可以通过在标签内包含所述输入来隐式分配它:

<label>Number of rooms
    <select name="rooms">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select>
</label>
Run Code Online (Sandbox Code Playgroud)

  • 对此的支持并不像`for`属性那样好.(虽然它是老IE,这是主要问题,它可能已经足够死,现在无关紧要). (2认同)

Chr*_*ner 5

以下是您不想使用 ID 或嵌套控件的示例:

  • 我正在创建一个使用模板的 BackboneJS 应用程序。因为模板可以复制,所以避免使用 ID 很重要,因为它会在 DOM 中创建多个具有相同 ID 的元素。

  • 我也在使用 Bootstrap,如果它被包裹在<label>元素中,它将以不同的(和不受欢迎的)方式呈现控件。

在这一点上,我能找到的唯一解决方案是包装控制元素并调整默认 CSS 以获得所需的输出。如果有人有更优雅的解决方案,请加入。