Pregunta Diferencia entre los atributos id y name en HTML


¿Cuál es la diferencia entre el id y name atributos? Ambos parecen cumplir el 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 alentado por algún motivo.


583
2017-09-09 04:53


origen


Respuestas:


los name atributo se utiliza al enviar datos en un envío de formulario. Los diferentes controles responden de manera diferente. Por ejemplo, puede tener varios botones de opción con diferentes id atributos, pero lo mismo name. Cuando se envía, solo hay un valor en la respuesta: el botón de selección que seleccionó.

Por supuesto, hay más que eso, pero definitivamente te hará pensar en la dirección correcta.


496
2017-09-09 04:58



Utilizar name atributos para los controles de formulario (como <input> y <select>), ya que ese es el identificador utilizado en POST o GET llamada que sucede en el envío del formulario.

Utilizar id atributos siempre que necesite abordar un elemento HTML 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.


285
2017-09-09 04:59



Aquí hay un breve resumen:

  • id se usa para identificar el elemento HTML a través del Documento Modelo de objetos (a través de JavaScript o con estilo con CSS). id se espera ser único dentro de la página.

  • name corresponde al formar elemento y identifica lo que se publica volver al servidor.


73
2017-09-09 04:59



Mira esto http://mindprod.com/jgloss/htmlforms.html#IDVSNAME

¿Cual es la diferencia? La respuesta corta es usar 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".

name = también se usa para etiquetar los campos en el mensaje enviado a un servidor con HTTP (Protocolo de transferencia de hipertexto) GET o POST cuando aciertas en un formulario.

id = etiqueta los campos para uso de JavaScript y DOM de Java (modelo de objetos de documento).   Los nombres en name = deben ser únicos dentro de un formulario. Los nombres en id = deben ser únicos dentro de todo el documento.

A veces, los nombres name = y id = difieren, porque el servidor espera el mismo nombre de varias formas en el mismo documento o varios botones de opción 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 las personas W3 inventaron la etiqueta de identificación que se requería para ser única. Lamentablemente, los navegadores antiguos no lo entendieron. Entonces necesita ambos esquemas de nombres en sus formularios.

NOTA: atributo "nombre" para algunas etiquetas como <a> no es compatible con HTML5.


30
2017-11-20 21:05



La forma en que pienso y uso es simple:

carné de identidad se usa para CSS y JavaScript / jQuery (tiene que ser exclusivo en una página)

nombre se utiliza para el manejo de formularios en PHP cuando se envía un formulario a través de HTML (tiene que ser único en una forma, en cierta medida, ver Pablocomentario de abajo)


23
2017-11-14 03:44



Etiqueta ID: utilizada por CSS, defina un único instancia de div, span u otros elementos. Aparece dentro del modelo Javascript DOM, lo que le permite acceder a ellos con varias llamadas a funciones.

Etiqueta de nombre para los campos: esta es única por formar - 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 su 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).


14
2017-09-09 05:09



<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>

8
2018-04-21 18:12



name está en desuso para los objetivos del enlace y no es válido en HTML5. Ya no funciona al menos en la última versión de Firefox (v13). Cambio <a name="hello"> a<a id="hello">

El objetivo no necesita ser un <a> etiqueta, puede ser <p id="hello"> o <h2 id="hello"> etc. que a menudo es un código más limpio.

Como otros mensajes dicen claramente, name todavía se usa (necesita) en formas. También se sigue utilizando en las etiquetas META.


8
2017-11-14 03:27



Este enlace tiene respuestas a la misma pregunta básica, pero básicamente, la identificación se usa para identificar scripts y el nombre es para el lado del servidor.

http://www.velocityreviews.com/forums/t115115-id-vs-name-attribute-for-html-controls.html


7
2017-09-09 05:01



name Vs id

nombre

  • Nombre del elemento. Por ejemplo, utilizado por el servidor para identificar el campos en presentaciones de formulario.
  • Los elementos de apoyo son <button>, <form>, <fieldset>, <iframe>, <input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>, <meta>, <param>
  • El nombre no tiene que ser único.

carné de identidad

  • A menudo se usa con CSS para darle estilo a un elemento específico. El valor de esto 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.
  • Usar caracteres excepto letras ASCII y dígitos, '_', '-' y '.' puede causar problemas de compatibilidad, ya que no están permitidos en HTML 4. Aunque esta restricción se ha eliminado en HTML 5, una ID debe comenzar con una carta de compatibilidad.

6
2017-11-28 04:43