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

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.

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

Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
источник