Подтвердить что ты не робот

Связать ярлык с вводом с классом not id?

Я знаю, что вы можете связать метку с вводом, используя атрибуты for и 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>
4b9b3361

Ответ 1

Классы не уникальны (вы можете иметь несколько элементов с одним классом), поэтому нет.

Если вы хотите связать метку с входом без использования идентификатора, вы можете неявно назначать его, введя указанный внутри метки:

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

Ответ 2

Нет, вы не можете использовать class элемента, потому что один и тот же класс может использоваться несколькими элементами - в этом случае, какой элемент был бы label для?

Ответ 3

Нет, вы не можете. Единственным атрибутом, который вы можете использовать, является атрибут id.

Нет смысла использовать класс (который описывает группу связанных элементов), поскольку метка может быть связана только с одним контролем формы.

Ответ 4

Вот пример того, когда вы не захотите использовать идентификатор или вложить элемент управления:

  • Я создаю приложение BackboneJS, которое использует шаблоны. Поскольку шаблон можно дублировать, важно воздерживаться от использования идентификаторов, поскольку он будет создавать несколько элементов в DOM с тем же идентификатором.

  • Я также использую Bootstrap, который представит элемент управления другим (и нежелательным) способом, если он будет завернут внутри элемента <label>.

В этот момент единственным решением, которое я могу найти, является обертка элемента управления и tweek CSS по умолчанию, чтобы получить желаемый результат. Если у кого-то есть более элегантное решение, пожалуйста, звоните.