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