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

时间:2012-08-06 15:05:06

标签: 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>

5 个答案:

答案 0 :(得分:42)

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

如果您想在不使用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>

答案 1 :(得分:4)

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

答案 2 :(得分:4)

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

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

  • 我也在使用Bootstrap,如果它包含在<label>元素内,它将以不同的(并且不合需要的)方式呈现控件。

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

答案 3 :(得分:3)

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

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

答案 4 :(得分:1)

你可以这样做:

<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>