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

Несколько форм с полями ввода с одним и тем же именем? Хорошо или плохо?

Является ли приемлемой практикой иметь несколько HTML-форм на странице с полями ввода, которые имеют один и тот же атрибут имени? Например, страница содержит список всех игроков, и пользователям разрешено голосовать за лучшего игрока, поэтому рядом с каждой карточкой игрока есть эта форма:

<form class="vote-for-player" enctype="application/x-www-form-urlencoded" method="post" action="/index/vote-for-best-player">
    <input type="hidden" name="player_id" value="1" />
    <input type="submit" name="vote_for_player" value="Vote" class="input-submit" />
</form>

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

Предположим, что на странице есть 20 таких форм, что означает 20 полей ввода с именем, равным "player_id". Если я передаю эту страницу с помощью HTML-валидатора, она действительна даже с XHTML 1.0 Strict doctype. Но является ли это приемлемой практикой из веб-стандартов или перспективы доступности?

Одна вещь, которую я точно знаю, облегчает обработку страницы на стороне сервера, так как мне просто нужно загрузить значение из одного поля POST с именем player_id.

4b9b3361

Ответ 1

Согласитесь с приведенным выше ответом. Имя полностью одобрено и будет передано как параметр ответа вашей формы. Разная история была бы в том случае, если бы у ваших элементов ввода был одинаковый идентификатор, - некоторые браузеры могут иметь проблемы с доступом к вашему документу.

Снова подумайте о пучке переключателей, где пользователи могут выбирать пол и т.д. Они должны иметь одинаковое имя (но разные идентификаторы)...

Ответ 2

Да, это действительно так, я делаю это все время.

Ответ 3

да, это прекрасно. На самом деле, я лично чувствую, что это действительно хорошая практика, так как это становится довольно неплохой для разработчиков, чтобы работать с относительно меньшими именами по сравнению с их количеством. Кроме того, когда элементы находятся на в разных формах он не вызывает конфликт имен пространства имен, так как для идентификации элементов в js по имени мы используем как имя формы, так и имя входного поля, чтобы доза не вызывала никаких проблем...