В чем разница между id
и name
атрибутами? Похоже, что они оба служат одной и той же цели - предоставить идентификатор.
Я хотел бы знать (в частности, в отношении HTML-форм), необходимо или не нужно использовать и то, и другое по каким-либо причинам.
html
attributes
yogibear
источник
источник
Ответы:
name
Атрибут используется при передаче данных в форме представления. Различные элементы управления реагируют по-разному. Например, у вас может быть несколько переключателей с разнымиid
атрибутами, но одинаковымиname
. При отправке в ответе присутствует только одно значение - выбранная вами радиокнопка.Конечно, это еще не все, но это определенно заставит вас думать в правильном направлении.
источник
id
чем работает ваш интерфейс (CSS, JS), а тоname
, что ваш сервер получает и может затем обработать. Это в основном то, что говорит ответ Greeso.Используйте
name
атрибуты для элементов управления формы (например,<input>
и<select>
), так как это идентификатор, используемый в вызовеPOST
или,GET
который происходит при отправке формы.Используйте
id
атрибуты всякий раз, когда вам нужно обратиться к конкретному элементу HTML с помощью CSS, JavaScript или идентификатора фрагмента . Можно также искать элементы по имени, но проще и надежнее искать их по ID.источник
name
иid
вообще. Идентификатор уникально идентифицирует определенный элемент HTML на странице.name
Атрибут элемента формы HTML, наоборот, не должны быть уникальными, и часто это не так , например, с помощью переключателей или страниц с несколькими<form>
элементами. Традиционно для однойname
и той жеid
HTML-элемента используется одна и та же строка, где они используются, но ничто не заставляет вас делать это.Вот краткое резюме:
id
используется для идентификации элемента HTML через объектную модель документа (с помощью JavaScript или в стиле CSS).id
как ожидается, будет уникальным на странице.name
соответствует элементу формы и определяет, что отправлено обратно на сервер .источник
Смотрите это http://mindprod.com/jgloss/htmlforms.html#IDVSNAME
ПРИМЕЧАНИЕ: атрибут «имя» для некоторых тегов, подобных как
<a>
, не поддерживается в HTML5.источник
name
важно для<input>
тегов в<form>
представлении, поскольку параметры используются в HTTP, иid
является просто уникальным идентификаторомСпособ, которым я думаю об этом и использую его, прост:
id используется для CSS и JavaScript / jQuery (должен быть уникальным на странице)
имя используется для обработки формы в PHP, когда форма отправляется через HTML (должна быть уникальной в форме - в некоторой степени, см. комментарий Павла ниже)
источник
ID-тег - используется CSS, определяет уникальный экземпляр div, span или других элементов. Появляется в модели Javascript DOM, позволяя вам получать к ним доступ с помощью различных вызовов функций.
Тег имени для полей - это уникально для каждой формы - если вы не делаете массив, который вы хотите передать в обработку PHP / на стороне сервера. Вы можете получить к нему доступ через Javascript по имени, но я думаю, что он не отображается как узел в DOM или могут применяться некоторые ограничения (например, вы не можете использовать .innerHTML, если я правильно помню).
источник
Обычно предполагается, что имя всегда заменяется идентификатором . В некоторой степени это верно, но не для полей формы и имен фреймов , если говорить практически. Например, с элементами формы
name
атрибут используется для определения пар имя-значение, которые должны быть отправлены в программу на стороне сервера, и его не следует исключать.Browsers do not use id in that manner
, Чтобы быть в безопасности, вы можете использовать атрибуты name и id для элементов формы. Итак, мы бы написали следующее:Для обеспечения совместимости хорошей идеей будет наличие соответствующих значений атрибутов name и id, когда оба они определены. Однако будьте осторожны - некоторые теги, особенно переключатели, должны иметь неуникальные значения имен, но требовать уникальных значений идентификаторов. Еще раз, это должно ссылаться на то, что id - это не просто замена имени; они разные по назначению. Кроме того, не стоит сбрасывать со счетов старый стиль, глубокий взгляд на современные библиотеки показывает, что такой стиль синтаксиса иногда используется для повышения производительности и упрощения. Ваша цель всегда должна быть в пользу совместимости.
Теперь в большинстве элементов атрибут name устарел в пользу более вездесущего атрибута id. Однако, в некоторых случаях, в частности , образуют поля (
<button>
,<input>
,<select>
и<textarea>
), имя атрибута жизни, потому что по- прежнему требуется , чтобы установить пару имя-значение для представления формы. Кроме того, мы обнаружили, что некоторые элементы, в частности, фреймы и ссылки, могут продолжать использовать атрибут name, поскольку он часто полезен для извлечения этих элементов по имени.Существует четкое различие между идентификатором и именем. Очень часто, когда имя продолжается, мы можем установить значения одинаковыми. Тем не менее, идентификатор должен быть уникальным, а имя в некоторых случаях не должно, думаю, переключатели. К сожалению, уникальность значений идентификаторов, хотя и улавливается проверкой разметки, не так последовательна, как это должно быть. Реализация CSS в браузерах будет стилизовать объекты, которые имеют значение id; таким образом, мы не можем отлавливать ошибки разметки или стиля, которые могут повлиять на наш JavaScript, до времени выполнения.
Это взято из книги JavaScript-
The Complete Reference by Thomas-Powell
источник
name
должно быть одинаковым (серверный код не заботится о том, что было отправлено), но оноid
должно быть другим (поскольку оно должно быть уникальным на всей странице).name
устарело для целей ссылки и недопустимо в HTML5. Он больше не работает, по крайней мере, в последней версии Firefox (v13). Изменить<a name="hello">
на<a id="hello">
Цель не должна быть
<a>
тегом, это может быть<p id="hello"
> или<h2 id="hello">
т. Д., Который часто является более чистым кодом.Как ясно говорят другие посты,
name
все еще используется (необходимо) в формах. Это также все еще используется в тегах META.источник
источник
Эта ссылка содержит ответы на тот же основной вопрос, но в основном id используется для идентификации сценариев, а name - для серверной части.
http://www.velocityreviews.com/forums/t115115-id-vs-name-attribute-for-html-controls.html
источник
name Vs id
имя
<button>, <form>, <fieldset>, <iframe>, <input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>, <meta>, <param>
Я бы
источник
name
атрибуты, используемые в элементах стиля. Я полагаю, это неверно?Идентификатор элемента ввода формы не имеет ничего общего с данными, содержащимися в элементе. Идентификаторы предназначены для подключения элемента с помощью JavaScript и CSS. Атрибут name, однако, используется в HTTP-запросе, отправляемом вашим браузером на сервер, в качестве имени переменной, связанной с данными, содержащимися в атрибуте value.
Например:
Когда форма отправлена, данные формы будут включены в заголовок HTTP следующим образом:
Если вы добавите атрибут ID, он ничего не изменит в заголовке HTTP. Это просто облегчит работу с CSS и JavaScript.
источник
Если вы не используете собственный метод отправки формы для отправки информации на сервер (а вместо этого делаете это с помощью javascript), вы можете использовать атрибут name, чтобы присоединить дополнительную информацию к входным данным - скорее как связать ее со скрытым входным значением, но выглядит аккуратнее, потому что он включен во входные данные.
Этот бит все еще работает в Firefox, хотя я полагаю, что в будущем он может быть пропущен.
Вы можете иметь несколько полей ввода с одним и тем же значением имени, если только вы не планируете использовать старомодный способ.
источник
На основе личного опыта и в соответствии с описанием школ W3 для атрибутов:
ID является глобальным атрибутом и применяется практически ко всем элементам в HTML. Он используется для уникальной идентификации элементов на веб-странице, и к его значению чаще всего обращаются из внешнего интерфейса (обычно через JavaScript или jQuery).
name - это атрибут, который полезен для определенных элементов (таких как элементы формы и т. д.) в HTML. Его значение в основном отправляется на сервер для обработки.
https://www.w3schools.com/tags/ref_attributes.asp
источник
Ниже приведено интересное использование атрибута id. Он используется внутри тега и используется для идентификации формы элементов за пределами границ, чтобы они были включены в другие поля формы.
источник
Идентификатор: 1) Он используется для идентификации элемента HTML через объектную модель документа (через Javascript или в стиле CSS). 2) Идентификатор должен быть уникальным на странице.
Имя соответствует элементу формы и определяет, что отправляется обратно на сервер. Пример :
источник
Идентификатор используется для уникальной идентификации элемента.
Имя используется в формах. Хотя вы отправляете форму, если вы не даете никакого имени, ничего не будет отправлено. Следовательно, элементам формы нужно имя, которое идентифицируется с помощью методов формы, таких как «получить или нажать».
И те, которые только с атрибутом имени, погаснут.
источник
Он
id
даст элементу идентификатор, поэтому, как только вы напишите реальный код (например, JavaScript), вы можете использовать идентификатор для чтения элементов.name
Это просто имя , так что пользователь может видеть имя элемента, я думаю.Пример:
Это полезно? Дайте мне знать, если есть какие-то проблемы.
источник
Нет буквальной разницы между идентификатором и именем.
name является идентификатором и используется в http-запросе, отправляемом браузером на сервер, в качестве имени переменной, связанной с данными, содержащимися в атрибуте value элемента.
Идентификатор, с другой стороны, является уникальным идентификатором для браузера, клиентской части и JavaScript. Для формы Hence нужен идентификатор, а для его элементов - имя.
id более конкретно используется при добавлении атрибутов к уникальным элементам. В методах DOM Id используется в Javascript для ссылки на конкретный элемент, на котором вы хотите, чтобы ваше действие происходило.
Например:
То же самое может быть достигнуто с помощью атрибута name, но предпочтительно использовать id в форме и name для небольших элементов формы, таких как тег input или тег select.
источник