2010-11-08 15 views
27

estoy trabajando en la incorporación de una aplicación flash en una página web utilizando el método de Satay:¿Está bien que un elemento HTML tenga el mismo [nombre] que su [id]?

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

Quiero flash para proporcionar la correcta objectID en ExternalInterface.objectID, lo que significa que necesita configurar tanto los name y atributos para id el object.

Normalmente trato de evitar el nombramiento de colisiones con elementos en HTML, pero ¿hay algo de malo en establecer ambos atributos con el mismo valor en este caso?

¿Qué hay de los formularios HTML? ¿Alguien siente que vale la pena establecer un (n) (input | textarea) atributos del elemento name y id en el mismo valor?

Respuesta

46

Utiliza identificadores para la manipulación de JavaScript.

Utiliza los nombres para el envío del campo de formulario.

Los dos no están relacionados. Por lo tanto, establecer ambos en el mismo valor está bien, pero no es obligatorio.

+9

Además, los ID deben ser únicos, pero los nombres no tienen que ser exclusivos. – jordanbtucker

+0

Ida también se utilizan para vincular por identificador de fragmento, y para el estilo a través de su uso en selectores CSS –

+0

Los identificadores son para facilitar la manipulación de JavaScript, pero es posible hacer algunas cosas por nombre mediante JavaScript. –

0

Lo hago todo el tiempo (principalmente porque algunos navegadores en el pasado - IE me viene a la mente - solo usa el parámetro de nombre al enviar los datos del formulario). El uso de id hace que el código de validación de formulario sea mucho más limpio, IMO.

+3

Los navegadores solo * supuestamente * usan el parámetro de nombre para enviar datos de formulario – Gareth

+1

Aunque no usaría el mismo valor 'name' y' id' para botones de radio, o casillas de verificación que son miembros de un grupo, porque los grupos de casillas de verificación/botones de radio son identificados por ellos y todos tienen el mismo nombre. –

1

¡Yup! Esto está absolutamente bien.

ID es el identificador del lado del cliente (cuando se esté buscando un elemento en el DOM)

nombre se utiliza durante el formulario de envío a POST/GET los valores.

Fuera de un elemento de entrada no debería haber necesidad de utilizar nombre en absoluto. Pero al proporcionar elementos de entrada id, se pueden buscar en el DOM de forma coherente.

5

No solo está bien, es bastante común.

Las ID se utilizan para Javascript (y, en menor medida, para CSS).

Los nombres se utilizan para los campos del formulario para especificar el nombre para el valor enviado.

Sin embargo, las versiones anteriores de IE tienen errores conocidos que significan que casi se ven obligados a especificar los mismos en muchos casos. (¡suponiendo que quiera respaldar esas versiones anteriores de IE, por supuesto!)

Lo único a tener en cuenta es que los ID deben ser únicos. Por lo tanto, si tiene botones de opción que tienen el mismo nombre, no puede usar la misma ID para todos. Sin embargo, en la mayoría de los otros casos, está perfectamente bien tenerlos de la misma manera.

1

acabo de descubrir el HTML4 answer to my question:

Los atributos id y name comparten el mismo espacio de nombre. Esto significa que no pueden definir un ancla con el mismo nombre en el mismo documento.Se permite usar ambos atributos para especificar el identificador único de un elemento para los siguientes elementos: A, APPLET, FORM, FRAME, IFRAME, IMG, and MAP. Cuando ambos atributos se usan en un solo elemento, sus valores deben ser idénticos.

Ahora, supongamos que la regla se aplica a applet y iframe debería, por extensión, el trabajo de object y embed etiquetas. En cualquier caso, el uso de un nombre idéntico & id no ha producido eventos inusuales hasta la fecha.

Cuestiones relacionadas