son - todas las etiquetas de html y sus atributos pdf
Diferencia entre los atributos de identificación y nombre en HTML (19)
¿Cuál es la diferencia entre los atributos id
y name
? Ambos parecen servir al mismo propósito de proporcionar un identificador.
Me gustaría saber (específicamente con respecto a los formularios HTML) si el uso de ambos es necesario o recomendable por cualquier motivo.
Aquí hay un breve resumen:
id
se utiliza para identificar el elemento HTML a través del Modelo de objetos de documento (a través de JavaScript o con un estilo CSS). Se espera queid
sea único dentro de la página.name
corresponde al elemento de formulario e identifica lo que se publica de nuevo en el servidor .
name Vs id
nombre
- Nombre del elemento. Por ejemplo, utilizado por el servidor para identificar los campos en los formularios de envío.
- Los elementos de soporte son
<button>, <form>, <fieldset>, <iframe>, <input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>, <meta>, <param>
- El nombre no tiene que ser único.
- A menudo se utiliza con CSS para estilizar un elemento específico. El valor de este atributo debe ser único.
- ID es atributos globales , se pueden usar en todos los elementos, aunque los atributos pueden no tener efecto en algunos elementos.
- Debe ser único en todo el documento.
- El valor de este atributo no debe contener espacios en blanco, en contraste con el atributo de clase, que permite valores separados por espacios.
- Uso de caracteres, excepto letras y dígitos ASCII, ''_'', ''-'' y ''.'' puede causar problemas de compatibilidad, ya que no estaban permitidos en HTML 4. Aunque esta restricción se ha eliminado en HTML 5, una ID debe comenzar con una letra para la compatibilidad.
A continuación se muestra un uso interesante del atributo id. Se usa dentro de la etiqueta y se usa para identificar el formulario para elementos fuera de los límites para que se incluyan con los otros campos dentro del formulario.
<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">
Basado en experiencias personales y de acuerdo con la descripción de W3 Schools para los atributos:
ID es un atributo global y se aplica a prácticamente todos los elementos en HTML. Se utiliza para identificar de forma única los elementos en la página web, y su valor se accede principalmente desde la interfaz (generalmente a través de JavaScript o jQuery).
nombre es un atributo que es útil para elementos específicos (como elementos de formulario, etc.) en HTML. Su valor se envía principalmente al backend para su procesamiento.
CSS y JavaScript utilizan la etiqueta "id" para asignar estilos y actuar sobre el elemento de entrada. Las bibliotecas como jquery usan el ID como un identificador de acceso directo, por lo que generalmente es útil establecerlo.
El atributo "nombre" de un elemento de formulario es lo que realmente recibe su navegador web en el envío / solicitud HTTP GET o POST al servidor web. Si lo deja en blanco, no tendrá un identificador adecuado vinculado a su contenido.
Sin embargo, puede estar usando JavaScript para enviar sus formularios a través de AJAX, lo que significa que nunca enviará las variables de formulario a través de GET o POST a través del envío directo del navegador web. En ese caso, el campo de nombre es innecesario, aunque no es una gran convención.
Consulte este http://mindprod.com/jgloss/htmlforms.html#IDVSNAME
¿Cual es la diferencia? La respuesta corta es, usa ambos y no te preocupes por eso. Pero si quieres entender esta tontería, aquí está el flaco:
id = es para usar como un objetivo como este:
<some-element id="XXX"></some-element>
para enlaces como este:<a href="#XXX"
.nombre = también se usa para etiquetar los campos en el mensaje enviado a un servidor con un HTTP (Protocolo de transferencia de hipertexto) GET o POST cuando presiona enviar en un formulario.
id = etiqueta los campos para uso de JavaScript y Java DOM (Modelo de objetos de documento). Los nombres en nombre = deben ser únicos dentro de un formulario. Los nombres en id = deben ser únicos en todo el documento.
A veces los nombres name = e id = diferirán, porque el servidor espera el mismo nombre de varias formas en el mismo documento o varios botones de radio en la misma forma que en el ejemplo anterior. El id = debe ser único; el nombre = no debe ser.
JavaScript necesitaba nombres únicos, pero ya había demasiados documentos sin nombre único = nombres, por lo que la gente de W3 inventó la etiqueta de identificación que se requería para ser única. Desafortunadamente los navegadores más antiguos no lo entendieron. Así que necesitas ambos esquemas de nombres en tus formularios.
NOTA: el atributo "nombre" para algunas etiquetas como <a>
no se admite en HTML5.
El ID de un elemento de entrada de formulario no tiene nada que ver con los datos contenidos dentro del elemento. Los identificadores son para enlazar el elemento con JavaScript y CSS. Sin embargo, el atributo de nombre se usa en la solicitud HTTP enviada por su navegador al servidor como un nombre de variable asociado con los datos contenidos en el atributo de valor.
El ID de un elemento de entrada de formulario no tiene nada que ver con los datos contenidos dentro del elemento. Los identificadores son para enlazar el elemento con JavaScript y CSS. Sin embargo, el atributo de nombre se usa en la solicitud HTTP enviada por su navegador al servidor como un nombre de variable asociado con los datos contenidos en el atributo de valor.
Por ejemplo:
<form>
<input type="text" name="user" value="bob">
<input type="password" name="password" value="abcd1234">
</form>
Cuando se envíe el formulario, los datos del formulario se incluirán en el encabezado HTTP de esta manera:
Si agrega un atributo de ID, no cambiará nada en el encabezado HTTP. Solo hará que sea más fácil conectarlo con CSS y JavaScript.
El atributo de name
se utiliza al enviar datos en un envío de formulario. Diferentes controles responden de manera diferente. Por ejemplo, puede tener varios botones de opción con diferentes atributos de id
, pero con el mismo name
. Cuando se envía, solo hay un valor en la respuesta: el botón de opción que seleccionó.
Por supuesto, hay más que eso, pero definitivamente te hará pensar en la dirección correcta.
En general, se asume que el nombre siempre es reemplazado por id . Esto es cierto, en cierta medida, pero no para campos de formulario y nombres de marcos , prácticamente hablando. Por ejemplo, con elementos de formulario, el atributo de name
se usa para determinar los pares nombre-valor que se enviarán a un programa del lado del servidor y no se deben eliminar. Browsers do not use id in that manner
. Para estar seguro, puede usar los atributos de nombre e identificación en los elementos del formulario. Entonces, escribiríamos lo siguiente:
<form id="myForm" name="myForm">
<input type="text" id="userName" name="userName" />
</form>
Para garantizar la compatibilidad, es una buena idea tener valores de atributo de nombre e id coincidentes cuando se definen ambos. Sin embargo, tenga cuidado: algunas etiquetas, especialmente los botones de opción, deben tener valores de nombres no únicos, pero requieren valores de identificación únicos. Una vez más, esto debería hacer referencia a que la identificación no es simplemente un reemplazo para el nombre; Son diferentes en el propósito. Además, no descarte el enfoque a la antigua usanza, una mirada profunda a las bibliotecas modernas muestra el estilo de sintaxis que se usa para propósitos de rendimiento y facilidad a veces. Tu objetivo siempre debe estar a favor de la compatibilidad.
Ahora en la mayoría de los elementos, el atributo de nombre ha sido desaprobado en favor del atributo de identificación más ubicuo. Sin embargo, en algunos casos, particularmente los campos de formulario ( <button>
, <input>
, <select>
y <textarea>
), el atributo de nombre continúa porque se requiere que establezca el par nombre-valor para el envío del formulario. Además, encontramos que algunos elementos, en particular marcos y enlaces, pueden continuar utilizando el atributo de nombre porque a menudo es útil para recuperar estos elementos por nombre.
Hay una clara distinción entre id y nombre. Muy a menudo, cuando el nombre continúa, podemos establecer los valores iguales. Sin embargo, la identificación debe ser única y, en algunos casos, el nombre no debería, piense en los botones de radio. Lamentablemente, la singularidad de los valores de identificación, mientras se detecta mediante la validación de marcado, no es tan consistente como debería ser. La implementación de CSS en los navegadores diseñará objetos que compartan un valor de id; por lo tanto, es posible que no detectemos errores de marcado o de estilo que puedan afectar nuestro JavaScript hasta el tiempo de ejecución.
Esto está tomado del libro JavaScript- The Complete Reference by Thomas-Powell
Este enlace tiene respuestas a la misma pregunta básica, pero básicamente, id se utiliza para la identificación de secuencias de comandos y el nombre es para el lado del servidor.
http://www.velocityreviews.com/forums/t115115-id-vs-name-attribute-for-html-controls.html
Etiqueta de identificación: utilizada por CSS, define una instancia única de un div, span u otros elementos. Aparece dentro del modelo DOM de JavaScript, lo que le permite acceder a ellos con varias llamadas de función.
Etiqueta de nombre para los campos: esto es único por formulario , a menos que esté haciendo una matriz que desea pasar al procesamiento de PHP / servidor. Puede acceder a él a través de Javascript por nombre, pero creo que no aparece como un nodo en el DOM o pueden aplicarse algunas restricciones (no puede usar .innerHTML, por ejemplo, si recuerdo correctamente).
ID que solía identificar de forma única un elemento.
El nombre se usa en las formas. cuando incluso u enviar un formulario. y si no da ningún nombre, no se enviará nada. Y los que solo tienen un atributo de nombre saldrán.
Id.: 1) Se utiliza para identificar el elemento HTML a través del Modelo de objetos de documento (a través de Javascript o con un estilo CSS). 2) Se espera que la identificación sea única dentro de la página.
El nombre corresponde al elemento de formulario e identifica lo que se publica de nuevo en el servidor. Ejemplo:
<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">
La forma en que lo pienso y lo uso es simple:
id se usa para CSS y JavaScript / jQuery (tiene que ser único en una página)
el nombre se usa para el manejo de formularios en PHP cuando un formulario se envía a través de HTML (tiene que ser único en un formulario; en cierta medida, vea el comentario de Paul continuación)
Si no está utilizando el método de envío propio del formulario para enviar información a un servidor (y en lugar de hacerlo con javascript), puede usar el atributo de nombre para adjuntar información adicional a una entrada, en lugar de emparejarlo con un valor de entrada oculto. pero se ve más ordenado porque está incorporado en la entrada.
Este bit aún funciona actualmente en Firefox, aunque supongo que en el futuro no se permitirá.
Puede tener múltiples campos de entrada con el mismo valor de nombre, siempre y cuando no planee enviar la forma antigua.
Use los atributos de name
para los controles de formulario (como <input>
y <select>
), ya que ese es el identificador utilizado en la llamada POST
o GET
que ocurre en el envío del formulario.
Use los atributos de id
siempre que necesite dirigir un elemento HTML en particular con CSS, JavaScript o un identificador de fragmento . También es posible buscar elementos por nombre, pero es más simple y más confiable buscarlos por ID.
name
está en desuso para los destinos de enlace, y no es válido en HTML5. Ya no funciona al menos en la última versión de Firefox (v13). Cambie <a name="hello">
a <a id="hello">
El objetivo no necesita ser una etiqueta <a>
, puede ser <p id="hello"
> o <h2 id="hello">
etc., que a menudo es un código más limpio.
Como dicen claramente otros mensajes, el name
todavía se usa (es necesario) en los formularios. También se utiliza en las etiquetas META.
<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>