Несколько Форм С Полями Ввода С Одинаковым Атрибутом Name? Хорошо Или Плохо?
допустимо ли иметь несколько HTML-форм на странице с полями ввода, которые имеют один и тот же атрибут name? Например, страница содержит список всех игроков, и пользователям разрешено голосовать за лучшего игрока, поэтому рядом с каждой карточкой игрока есть такая форма:
<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>
Value скрытого поля ввода, конечно, отличается для каждой формы.
предположим, что на странице есть 20 таких форм, так что это означает 20 полей ввода с имя равным "player_id". Если я передаю эту страницу через HTML-валидатор, она действительна даже со строгим doctype XHTML 1.0. Но является ли это приемлемой практикой с точки зрения веб-стандартов или доступности?
одно я знаю точно, это упрощает обработку страницы на стороне сервера, так как мне просто нужно загрузить значение из одного поля POST под названием player_id.
3 ответов
согласен с ответом выше. Имя полностью в порядке и будет передано в качестве параметра ответа вашей формы. Другая история была бы, если бы ваши входные элементы также имели одинаковые идентификаторы - некоторые браузеры могут иметь проблемы с прохождением dom вашего документа.
опять же, подумайте о куче переключателей, где пользователи могут выбрать пол и т. д. Они должны иметь одинаковое имя (но разные идентификаторы)...
да, это прекрасно.. на самом деле я лично считаю, что это действительно хорошая практика, так как она оказывается относительно удобной для разработчиков, чтобы работать с относительно меньшим количеством имен по сравнению с кучей из них.. кроме того, когда элементы находятся в разных формах, это не вызывает столкновения пространства имен, так как для идентификации элементов в js по имени мы используем как имя формы, так и имя поля ввода, поэтому это не вызывает никаких проблем...