Формы HTML. Требуются ли имя и идентификатор?

Зачем нужны атрибуты name и id для элементов формы <input>?

Что используется для отправки данных POST и которые я могу исключить?

Ответ 1

name используется серверной стороной, это необходимо, если вы планируете обработать поле. id - это только те элементы label, при нажатии и доступе с помощью экранных считывателей, могут запускать/вызывать элементы управления формой (входы, выбор).

<form method=POST action="form-processor.php">
    <input name=first_name value=john>
</form>

приводит к

$_POST = array( 'first_name' => 'john' );

Если метод GET, он добавляется к строке запроса:

http://site-name.com/form-handler.php?first_name=john

он популярный для добавления строки запроса со скрытыми вводами:

<input type="hidden" name="q" value="1">

Ответ 2

Идентификатор не требуется. Имя также не является обязательным, но браузер не отправляет данные <input> без него. Это то же самое для POST и GET.

Ответ 3

Для входного элемента нет обязательных атрибутов.

http://w3schools.com/tags/tag_input.asp - w3schools всегда имеет отличную информацию.

Ответ 4

name - это атрибут, определяющий "имя переменной" при выполнении сообщения. id используется для целей javascript и т.д.

Ответ 5

имя используется для POST и GET.

id используется для стилизации.

class используется для применения одного и того же стиля к набору элементов, которые имеют один и тот же "класс".

То, как я их запоминаю.

Ответ 6

имя используется для отправки POST

Ответ 7

name необходим для post и get... но не id... id используется обработка клиентской стороны...

Ответ 8

требуется имя, id не так важен. Однако идентификатор используется для связывания меток с полями ввода общих форм, такими как переключатель, текстовые поля и т.д.

Ответ 9

Необходимо указать имя, чтобы вы могли публиковать или получать значения на следующей странице. Идентификатор необходим для выполнения манипуляций с помощью css и других подобных материалов. Это также возможно только с именем. Поэтому имя более важно. Предоставление идентификатора делает его стандартизованным.

Ответ 10

HTML5 цитата

https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-name  подтверждает, что это не обязательно:

Атрибут содержимого name задает имя элемента управления формы, которое используется при отправке формы и в объекте элементов элемента формы. Если атрибут указан, его значение не должно быть пустой строкой или индексом.

Что произойдет, если он не указан?

В Chromium 75, где я тестировал с nc, он просто не отправляется:

<!doctype html>
<html lang=en>
    <head>
        <meta charset=utf-8>
        <title>Min sane</title>
    </head>
    <body>
        <form action="http://localhost:8000" method="post">
            <p><input type="text" name="key" value="default value"></p>
            <p><button type="submit">Submit</button></p>
        </form>
    </body>
</html>

посылает:

key=default+value

но без name просто нет.

Однако оба проходят валидатор HTML: https://validator.w3.org/

Зачем вам нужен input без name?

JavaScript все еще может получить доступ к значению и что-то с ним сделать.