Разница между атрибутами 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>
Ответ 10
У этой ссылки есть ответы на один и тот же основной вопрос, но в основном идентификатор используется для идентификации скриптов, а имя для серверной стороны.
http://www.velocityreviews.com/forums/t115115-id-vs-name-attribute-for-html-controls.html
Ответ 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.