об использовании идентификатора и класса: должны ли идентификаторы всегда быть уникальными на странице? - PullRequest
0 голосов
/ 30 июня 2019

Мое приложение предлагает пользователям возможность присоединяться к событиям.На моей странице указателя событий я перебираю все события и показываю, как они обертывают каждое в тег li.Пользователь может присоединиться к событию, нажав следующую кнопку:

<%= form_for(current_user.attendances.build) do |f| %>
  <div><%= f.hidden_field :event_id, value: event.id %></div>
  <%= f.submit "Join the event", class: "btn btn-primary" %>
  <%= f.label :car, class: "checkbox inline checkbox-car" do %>
    <%= f.check_box :car %>
    <span> I want to share my car </span>
  <% end %>
<% end %>

HTML-код, соответствующий чекбоксу:

<input id="attendance_car" type="checkbox" value="1" name="attendance[car]">

Проблема заключается в id, назначенном автоматическитег ввода attendance_car: каждое событие имеет одинаковый идентификатор.Не нарушит ли это правило, согласно которому значение идентификатора должно быть уникальным в документе HTML?
Интересно, что является следствием использования в парциальном событии ids вместо classes, как я сделал по ошибке с некоторыми тегами: ids не будет уникальным, но я заметил, что приложение будет работать.

Ответы [ 2 ]

1 голос
/ 30 июня 2019

"Должен ли идентификатор всегда быть уникальным на странице?" Да, конечно, любой элемент DOM должен иметь уникальный идентификатор (если он есть). См. w3c для ссылки на атрибут id.

Почему бы вам просто не добавить номер к своим идентификаторам, чтобы сделать их уникальными?

0 голосов
/ 30 июня 2019

Современные браузеры поддерживают несколько элементов, имеющих одинаковый идентификатор.Это недействительный HTML и может повлиять на рейтинг Google.Если вы должны иметь это из-за побочных эффектов HTML-помощников, генерирующих теги, не беспокойтесь, так как ничего не сломается, если вы не используете такие вещи, как getElementById.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...