Допустимо ли иметь несколько элементов ввода формы с одинаковым именем?


11

Это допустимая разметка и она действительна для спецификации HTML / HTTP? Если бы я хотел иметь

<form>
<input name="email" />
<input name="email" />
<input name="email" />
</form>

это действительно?


По определению переключатели в одной группе имеют одинаковое имя.
MrWhite

Ответы:


9

Как указано на SO :

Браузеры в порядке с этим. Однако то, как анализирует библиотека приложения, может отличаться.

Программы должны группировать элементы с одинаковыми именами. Хотя спецификация HTML прямо не говорит об этом, она неявно указана в документации по флажкам:

«Несколько флажков в форме могут иметь одно и то же имя элемента управления. Таким образом, например, флажки позволяют пользователям выбирать несколько значений для одного свойства».

Кстати, в PHP вы можете иметь поля формы с одинаковым именем, если вы используете PHP-синтаксис arry для имени поля:

<form>
<input name="email[]" />
<input name="email[]" />
<input name="email[]" />
</form>

Это заставит браузер для отправки через поле формы в синтаксисе , что PHP будет использовать для заполнения массива для этих полей: $_REQUEST['email']. Если вы используете PHP, это предпочтительный способ справиться с этим.


5

HTML5

Ненормативный раздел 4.10.1.3. Конфигурирование формы для связи с сервером однозначно говорит, что она действительна:

Несколько элементов управления могут иметь одинаковое имя; например, здесь мы присваиваем всем флажкам одно и то же имя, и сервер различает, какой флажок был установлен, проверяя, какие значения передаются с этим именем - подобно переключателям, им также присваиваются уникальные значения с атрибутом value.

Нормативная версия этого просто состоит в том, что это нигде не запрещено, и алгоритм отправки формы точно говорит, какой запрос должен быть сгенерирован:

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.