Разница между атрибутами id и name в HTML

В чем разница между атрибутами id и name? Кажется, что оба они выполняют одну и ту же цель предоставления идентификатора.

Я хотел бы знать (в частности, в отношении HTML-форм), необходимо или не рекомендуется использовать оба метода по любым причинам.

Ответ 1

Атрибут name используется при отправке данных при отправке формы. Различные элементы управления реагируют по-разному. Например, у вас может быть несколько переключателей с разными атрибутами id, но те же name. Когда отправлено, в ответе есть только одно значение - выбранный вами переключатель.

Конечно, там больше, чем это, но это определенно заставит вас думать в правильном направлении.

Ответ 2

Используйте атрибуты name для элементов управления формой (например, <input> и <select>), как идентификатор, используемый в вызове POST или GET, который происходит при отправке формы.

Используйте атрибуты id, когда вам нужно адресовать определенный элемент HTML с CSS, JavaScript или идентификатор фрагмента. Можно также искать элементы по имени, но проще и надежнее искать их по идентификатору.

Ответ 3

Вот краткое резюме:

  • id используется для идентификации элемента HTML через Document Object Model (с помощью JavaScript или в стиле CSS). Ожидается, что id будет уникальным на странице.

  • name соответствует элементу формы и идентифицирует, что отправлено обратно на сервер.

Ответ 4

Смотрите это http://mindprod.com/jgloss/htmlforms.html#IDVSNAME

Какая разница? Короткий ответ: используйте оба и не беспокойтесь об этом. Но если вы хотите понять эту глупость, вот тощий

id = для использования в качестве цели: <some-element id="XXX"></some-element> для ссылок, подобных этой: <a href="#XXX".

name = также используется для обозначения полей в сообщении, отправляемых на сервер с помощью HTTP (HyperText Transfer Protocol) GET или POST при нажатии кнопки отправки в форме.

id = помечает поля для использования JavaScript и Java DOM (объектная модель документа). Имена в name = должны быть уникальными внутри формы. Имена в id = должны быть уникальными во всем документе.

Иногда имена name = и id = будут отличаться, потому что сервер ожидает одно и то же имя от различных форм в одном и том же документе или различных переключателей в той же форме, что и в примере выше. Идентификатор = должен быть уникальным; имя = не должно быть

JavaScript требовал уникальных имен, но здесь уже было слишком много документов без уникальных name = names, поэтому специалисты W3 изобрели тег id, который должен был быть уникальным. К сожалению, старые браузеры этого не поняли. Таким образом, вам нужны обе схемы именования в ваших формах.

ПРИМЕЧАНИЕ: атрибут "name" для некоторых тегов, таких как <a>, не поддерживается в HTML5.

Ответ 5

Как я думаю об этом и использую его просто:

id используется для CSS и JavaScript/jQuery (должен быть уникальным на странице)

name используется для обработки формы в PHP, когда форма отправляется через HTML (должна быть уникальной в форме - в некоторой степени, см. Paul ниже)

Ответ 6

Тег

ID - используется CSS, определяет экземпляр уникальный div, span или других элементов. Появляется внутри модели Javascript DOM, позволяя вам получить к ним доступ с различными вызовами функций.

Тег имени для полей - это уникальная форма для - если вы не делаете массив, который хотите передать на обработку на PHP/сервер. Вы можете получить к нему доступ через Javascript по имени, но я думаю, что он не отображается как node в DOM или могут применяться некоторые ограничения (вы не можете использовать .innerHTML, например, если я правильно помню).

Ответ 7

Как правило, предполагается, что имя всегда заменяется идентификатором. Это правда, в некоторой степени, но не для полей формы и имен кадров, практически говоря. Например, с элементами формы атрибут name используется для определения пар имя-значение, которые должны быть отправлены на серверную программу и не должны быть устранены. Browsers do not use id in that manner. Чтобы быть в безопасности, вы можете использовать атрибуты имени и идентификатора для элементов формы. Итак, мы напишем следующее:

<form id="myForm" name="myForm">
     <input type="text" id="userName" name="userName" />
</form>

Чтобы обеспечить совместимость, наличие подходящих имен и значений атрибутов id, когда они определены, является хорошей идеей. Однако будьте осторожны: некоторые теги, особенно радиокнопки, должны иметь неоднозначные значения имен, но требуют уникальных значений id. Еще раз, это должно указывать на то, что идентификатор - это не просто замена имени; они различны по назначению. Кроме того, не снижайте стиль старого стиля, глубокий взгляд на современные библиотеки показывает такой стиль синтаксиса, который используется для повышения производительности и удобства. Ваша цель всегда должна быть в отношении совместимости.

Теперь в большинстве элементов атрибут name устарел в пользу более вездесущего атрибута id. Однако в некоторых случаях, в частности, поля формы (<button>, <input>, <select> и <textarea>), атрибут name живет, потому что по-прежнему требуется установить пару имя-значение для отправки формы. Кроме того, мы обнаруживаем, что некоторые элементы, особенно кадры и ссылки, могут продолжать использовать атрибут name, потому что часто полезно извлекать эти элементы по имени.

Существует четкое различие между идентификатором и именем. Очень часто, когда имя продолжается, мы можем установить значения одинаковыми. Тем не менее, идентификатор должен быть уникальным, а имя в некоторых случаях не должно включать радиокнопки. К сожалению, уникальность значений id, в то время как улавливается проверкой разметки, не так согласована, как должна быть. Реализация CSS в браузерах будет стилизовать объекты, которые имеют значение id; таким образом, мы не можем улавливать ошибки разметки или стиля, которые могут повлиять на наш JavaScript до выполнения.

Это взято из книги JavaScript- The Complete Reference by Thomas-Powell

Ответ 8

name устарел для целей ссылки и недействителен в HTML5. Он больше не работает, по крайней мере, в последнем Firefox (v13). Измените <a name="hello"> на <a id="hello">

Цель не должна быть тегом <a>, она может быть <p id="hello" > или <h2 id="hello"> и т.д., которая часто является чистым кодом.

Как говорят другие сообщения, name по-прежнему используется (требуется) в формах. Он также по-прежнему используется в тегах META.

Ответ 9

<form action="demo_form.asp">
<label for="male">Male</label>
<input type="radio" name="sex" id="male" value="male"><br>
<label for="female">Female</label>
<input type="radio" name="sex" id="female" value="female"><br>
<input type="submit" value="Submit">
</form>

Ответ 11

name Vs id

имя

  • Имя элемента. Например, используемый сервером для идентификации полей в форме отправляет.
  • Поддерживающими элементами являются <button>, <form>, <fieldset>, <iframe>, <input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>, <meta>, <param>
  • Имя не обязательно должно быть уникальным.

Я бы

  • Часто используется с CSS для создания определенного элемента. Значение этого атрибута должно быть уникальным.
  • Id - глобальные атрибуты, они могут использоваться для всех элементов, хотя атрибуты могут не влиять на некоторые элементы.
  • Должен быть уникальным во всем документе.
  • Это значение атрибута не должно содержать пробелов, в отличие от атрибута класса, что позволяет использовать значения, разделенные пробелами.
  • Использование символов, кроме букв ASCII и цифр, '_', '-' и '.' может вызвать проблемы совместимости, поскольку они не были разрешены в HTML 4. Хотя это ограничение было отменено в HTML 5, идентификатор должен начинаться с буквы для совместимости.

Ответ 12

Идентификатор элемента ввода формы не имеет ничего общего с данными, содержащимися в элементе. Идентификаторы предназначены для подключения элемента с помощью JavaScript и CSS. Атрибут name, однако, используется в HTTP-запросе, отправленном вашим браузером на сервер, в качестве имени переменной, связанного с данными, содержащимися в атрибуте value.

Например:

<form>
    <input type="text" name="user" value="bob">
    <input type="password" name="password" value="abcd1234">
</form>

Когда форма отправлена, данные формы будут включены в заголовок HTTP следующим образом:

Если вы добавите атрибут идентификатора, он ничего не изменит в заголовке HTTP. Это просто упростит привязку его к CSS и JavaScript.

Ответ 13

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

Этот бит все еще работает в Firefox, хотя я предполагаю, что в будущем он не сможет быть разрешен.

У вас может быть несколько полей ввода с одинаковым именем, если вы не планируете подавать старомодный способ.

Ответ 14

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

 <form action="action_page.php" id="form1">
 First name: <input type="text" name="fname"><br>
 <input type="submit" value="Submit">
 </form>

 <p>The "Last name" field below is outside the form element, but still part of the form.</p>
 Last name: <input type="text" name="lname" form="form1">

Ответ 15

Id: 1) Он используется для идентификации элемента HTML через объектную модель документа (через Javascript или в стиле CSS). 2) Идентификатор должен быть уникальным на странице.

Имя соответствует элементу формы и указывает, что отправлено обратно на сервер. Пример:

<form action="action_page.php" id="Myform">
 First name: <input type="text" name="FirstName"><br>
 <input type="submit" value="Submit">
 </form>

 <p>The "Last name" field below is outside the form element, but still part of the form.</p>
 Last name: <input type="text" name="LastName" form="Myform">

Ответ 16

Тег "id" используется CSS и JavaScript для назначения стилей и действий над элементом ввода. Библиотеки, такие как jquery, используют идентификатор как ярлык, поэтому его обычно полезно устанавливать.

Атрибут "name" элемента формы - это то, что фактически отправляется вашим веб-браузером в отправке/запросе HTTP GET или POST на веб-сервер. Если вы оставите его пустым, у вас не будет соответствующего идентификатора, связанного с вашим контентом.

Однако вы можете использовать JavaScript для отправки своих форм через AJAX, что означает, что вы никогда не отправляете переменные формы через GET или POST через прямое представление веб-браузера. В этом случае поле имени не нужно, хотя это не очень удобно.

Ответ 17

ID я использовал для однозначной идентификации элемента.

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

Ответ 18

Основываясь на личном опыте и в соответствии с описанием W3 Schools для атрибутов:

ID - это глобальный атрибут и применяется практически ко всем элементам HTML. Он используется для уникальной идентификации элементов на веб-странице, и его значение в основном доступно из интерфейса (обычно через JavaScript или jQuery).

name - это атрибут, полезный для определенных элементов (например, элементов формы и т.д.) в HTML. Его значение в основном отправляется на сервер для обработки.

https://www.w3schools.com/tags/ref_attributes.asp

Ответ 19

Идентификатор элемента ввода формы не имеет ничего общего с данными, содержащимися в элементе. Идентификаторы предназначены для подключения элемента с помощью JavaScript и CSS. Атрибут name, однако, используется в HTTP-запросе, отправленном вашим браузером на сервер, в качестве имени переменной, связанного с данными, содержащимися в атрибуте value.