¿Es redundante utilizar el atributo "nombre" para los campos de entrada en el desarrollo web moderno?

StackOverflow https://stackoverflow.com/questions/1813085

  •  06-07-2019
  •  | 
  •  

Pregunta

He notado muchos sitios web con formularios que contienen campos de entrada cuyo " nombre " ¡El atributo se especifica incluso si no se usa con fines de estilo o scripting!

Por otra parte, de acuerdo con el documento oficial sobre el formulario en el documento HTML ...

  

name = cdata [CI] este atributo nombra   el elemento para que pueda ser referido   a partir de hojas de estilo o guiones. Nota.   Este atributo se ha incluido para   compatibilidad al revés. Aplicaciones   debe usar el atributo id para   identificar elementos.

Entonces, mi pregunta es: ¿este atributo debería usarse solo para propósitos de estilo y secuencias de comandos?

Gracias de antemano!


EDITAR: en particular, podría evitarse el uso de este atributo con campos de entrada de " texto " tipo (cuando no hay propósitos de estilo o scripting)?


EDIT 2: Entonces, casi has confirmado lo que había pensado: el " nombre " El atributo quedará en desuso en otras especificaciones / estándares HTML. Todavía está `` vivo '' solo para compatibilidad con versiones anteriores ... en algunos casos se puede evitar, ¡pero todavía hay algunos casos (como el botón de radio) donde es necesario!

¿Fue útil?

Solución

El atributo name es la notación para hacer referencia a elementos específicos dentro del alcance de una página web a través de Javascript no DOM:

document.forms['your_form'].elements['aa']

El atributo id para el elemento debe establecerse con el mismo valor para que funcione lo siguiente:

document.getElementById('aa')

Entiendo que cuando Netscape creó Javascript, usó el atributo name . Sin embargo, la especificación HTML decidió ir con id , pero mantuvo name por compatibilidad con versiones anteriores. IME, el uso del atributo name era necesario para la compatibilidad con Internet Explorer 6 porque el motor de JavaScript en IE no leería el atributo id , solo el name aunque ambos fueron definidos.

  

... podría evitarse el uso de este atributo con campos de entrada de "texto" tipo (cuando no hay propósitos de estilo o scripting)?

Si no tiene ningún javascript conectado a los campos de texto, sí, serían innecesarios.

Otros consejos

Creo que encontrará que casi todos los sitios tendrán entradas con el atributo de nombre. No veo que desaparezca pronto.

  

El atributo de nombre especifica un nombre   para un elemento de entrada.

     

El atributo de nombre se usa para identificar   formulario de datos después de haber sido enviado   al servidor, o al formulario de referencia   datos usando JavaScript en el cliente   lado.

     

Nota: solo elementos de formulario con un nombre   atributo tendrá sus valores   aprobado al enviar un formulario.

fuente

Hay diferencias entre los atributos id y name. Una identificación es aplicable a cualquier elemento en el documento HTML, mientras que un nombre es relevante solo para los campos de entrada. Por norma, se requiere una identificación para ser única en una página (aunque no necesariamente se sigue en todas las páginas web). Sin embargo, diferentes elementos pueden tener el mismo nombre. Un caso particular viene a la mente es el botón de radio. Todos los botones de radio deben tener el mismo nombre y el valor del seleccionado se devolverá al formulario. Entonces puede ver que ese nombre todavía tiene importancia en el procesamiento de formularios HTML.

He visto en sistemas automáticos de generación de formularios HTML (como zope.formlib ), Los atributos id y name se generan automáticamente para diferentes tipos de widgets de entrada. Dichos sistemas de generación automática de formularios cuidan adecuadamente todos los matices asociados con las diferencias en los atributos de identificación y nombre. También hacen cosas como generar un elemento de entrada oculto para cada elemento de casilla de verificación. Entonces, siempre que sea posible, trato de usar algún tipo de mecanismo automático de generación de formularios HTML y dejo que se ocupe de los problemas involucrados.

Esta es una vieja pregunta, pero vale la pena señalar que muchos frameworks JS modernos se basan en el atributo name . En particular, la función serialize de jQuery:

  

Para que el valor de un elemento de formulario se incluya en la cadena serializada, el elemento debe tener un atributo de nombre.

En todo caso, name parece estar regresando.

También vale la pena señalar que el atributo name es útil porque tiene un poco más de "alcance". que id . id debe ser único dentro de una página, pero el mismo name puede usarse varias veces. Esto lo hace útil cuando tiene varios formularios en la misma página, o cuando desea hacer referencia a un grupo de casillas de verificación, etc.

Los navegadores más antiguos de IIRC usan el nombre en lugar de la ID, por eso normalmente se incluye.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top