Это допустимая разметка и она действительна для спецификации HTML / HTTP? Если бы я хотел иметь
<form>
<input name="email" />
<input name="email" />
<input name="email" />
</form>
это действительно?
Это допустимая разметка и она действительна для спецификации HTML / HTTP? Если бы я хотел иметь
<form>
<input name="email" />
<input name="email" />
<input name="email" />
</form>
это действительно?
Ответы:
Как указано на SO :
Браузеры в порядке с этим. Однако то, как анализирует библиотека приложения, может отличаться.
Программы должны группировать элементы с одинаковыми именами. Хотя спецификация HTML прямо не говорит об этом, она неявно указана в документации по флажкам:
«Несколько флажков в форме могут иметь одно и то же имя элемента управления. Таким образом, например, флажки позволяют пользователям выбирать несколько значений для одного свойства».
Кстати, в PHP вы можете иметь поля формы с одинаковым именем, если вы используете PHP-синтаксис arry для имени поля:
<form>
<input name="email[]" />
<input name="email[]" />
<input name="email[]" />
</form>
Это заставит браузер для отправки через поле формы в синтаксисе , что PHP будет использовать для заполнения массива для этих полей: $_REQUEST['email']
. Если вы используете PHP, это предпочтительный способ справиться с этим.
HTML5
Ненормативный раздел 4.10.1.3. Конфигурирование формы для связи с сервером однозначно говорит, что она действительна:
Несколько элементов управления могут иметь одинаковое имя; например, здесь мы присваиваем всем флажкам одно и то же имя, и сервер различает, какой флажок был установлен, проверяя, какие значения передаются с этим именем - подобно переключателям, им также присваиваются уникальные значения с атрибутом value.
Нормативная версия этого просто состоит в том, что это нигде не запрещено, и алгоритм отправки формы точно говорит, какой запрос должен быть сгенерирован:
application/x-www-form-urlencoded
цикл над «набором данных формы» и выплевывание нескольких key=val
https://www.w3.org/TR/html5/forms.html#url-encoded-form-data