Несколько форм с полями ввода с одним и тем же именем? Хорошо или плохо?
Является ли приемлемой практикой иметь несколько 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.
Ответы
Ответ 1
Согласитесь с приведенным выше ответом. Имя полностью одобрено и будет передано как параметр ответа вашей формы. Разная история была бы в том случае, если бы у ваших элементов ввода был одинаковый идентификатор, - некоторые браузеры могут иметь проблемы с доступом к вашему документу.
Снова подумайте о пучке переключателей, где пользователи могут выбирать пол и т.д. Они должны иметь одинаковое имя (но разные идентификаторы)...
Ответ 2
Да, это действительно так, я делаю это все время.
Ответ 3
да, это прекрасно. На самом деле, я лично чувствую, что это действительно хорошая практика, так как это становится довольно неплохой для разработчиков, чтобы работать с относительно меньшими именами по сравнению с их количеством. Кроме того, когда элементы находятся на в разных формах он не вызывает конфликт имен пространства имен, так как для идентификации элементов в js по имени мы используем как имя формы, так и имя входного поля, чтобы доза не вызывала никаких проблем...