Можно ли, чтобы элемент HTML имел то же [имя], что и его [идентификатор]?

Я работаю над внедрением флеш-приложения на веб-страницу, используя метод Satay:

<object type="application/x-shockwave-flash" data="embeddy.swf"
id="embeddy" name="embeddy">
  <param name="movie" value="embeddy.swf" />
</object>

Я хочу, чтобы flash предоставил правильный objectID в ExternalInterface.objectID, а это значит, что мне нужно установить атрибуты name и id для object.

Обычно я стараюсь избегать конфликтов имен с элементами в HTML, но есть ли что-то неправильное в том, чтобы установить для обоих атрибутов одно и то же значение в этом случае?

Как насчет HTML-форм? Кто-нибудь считает, что стоит установить (n) ( input | select | textarea ) атрибуты name и id элемента на одно и то же значение?


person zzzzBov    schedule 08.11.2010    source источник


Ответы (5)


Вы используете идентификаторы для манипулирования JavaScript.

Вы используете имена для отправки полей формы.

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

person Diodeus - James MacFarlane    schedule 08.11.2010
comment
Кроме того, идентификаторы должны быть уникальными, но имена не обязательно должны быть уникальными. - person jordanbtucker; 09.11.2010
comment
Ida также используются для связывания по идентификатору фрагмента и для стилизации с помощью их использования в селекторах CSS. - person Bobby Jack; 09.11.2010
comment
Идентификаторы предназначены для упрощения манипулирования JavaScript, но некоторые вещи можно делать по имени с помощью JavaScript. - person Hamish Grubijan; 09.11.2012
comment
Спасибо, давно искал ответ на этот вопрос - person Tim Aych; 20.09.2013

Это не только нормально, это довольно распространено.

Идентификаторы используются для Javascript (и, в меньшей степени, для CSS).

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

Однако в более старых версиях IE есть известные ошибки, которые означают, что во многих случаях вы почти вынуждены указывать их одинаково. (конечно, при условии, что вы хотите поддерживать эти старые версии IE!)

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

person Spudley    schedule 08.11.2010

Ага! Это абсолютно нормально.

id — это идентификатор на стороне клиента (для поиска элемента в DOM).

имя используется во время отправки формы для POST/GET значений.

Вне элемента ввода вообще не должно быть необходимости использовать name. Но предоставление входным элементам id позволяет последовательно искать их в DOM.

person Moo-Juice    schedule 08.11.2010

Я только что нашел HTML4-ответ на мой вопрос :

Атрибуты id и name используют одно и то же пространство имен. Это означает, что они не могут оба определить привязку с одним и тем же именем в одном и том же документе. Допустимо использовать оба атрибута для указания уникального идентификатора элемента для следующих элементов: A, APPLET, FORM, FRAME, IFRAME, IMG, and MAP. Если оба атрибута используются в одном элементе, их значения должны быть идентичными.

Теперь я предполагаю, что правило, применяемое к applet и iframe, должно работать и для тегов object и embed. В любом случае, использование идентичного имени и идентификатора на сегодняшний день не привело к каким-либо необычным событиям.

person zzzzBov    schedule 10.01.2011

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

person Brian Flanagan    schedule 08.11.2010
comment
Браузеры должны использовать только параметр имени для отправки данных формы. - person Gareth; 09.11.2010
comment
Хотя вы не будете использовать одно и то же значение name и id для переключателей или флажков, которые являются членами группы, потому что группы переключателей/флажков как бы идентифицируются тем, что все они имеют одинаковое имя. - person Paul D. Waite; 09.11.2010