28

我知道您可以使用 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>
4

5 回答 5

53

类不是唯一的(同一个类可以有多个元素),所以不是。

如果您想在不使用 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>
于 2012-08-06T15:07:03.150 回答
5

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

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

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

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

于 2015-12-23T17:25:03.323 回答
4

不,你不能使用class一个元素的,因为同一个类可以被多个元素使用——在这种情况下,哪个元素label可以使用?

于 2012-08-06T15:06:53.047 回答
3

不,你不能。您可以使用的唯一属性是id属性。

使用类(描述一组相关元素)是没有意义的,因为标签只能与一个表单控件相关联。

于 2012-08-06T15:06:21.980 回答
2

你可以这样做 :

<label class="col-md-12 input-group input-group-sm">
    <span class="col-sm-5 control-label text-nowrap">Code</span>
    <input class="form-control listen code" type="text" size="15" required/>
</label>
于 2021-04-02T15:00:30.723 回答