Skip to main content
Validación HTML

Valor incorrecto “” para el atributo “name” en el elemento “input”: No debe estar vacío.

Acerca de este problema HTML

El atributo name en un elemento <input> identifica los datos del control de formulario cuando se envía el formulario. Actúa como la clave en el par clave-valor enviado al servidor (por ejemplo, email=user@example.com). Cuando estableces name="", el atributo está presente pero contiene una cadena vacía, lo cual la especificación HTML considera un valor inválido. Un nombre vacío significa que los datos del input serán excluidos de la carga útil de envío del formulario en la mayoría de los navegadores, haciéndolo funcionalmente inútil para el procesamiento de formularios.

Este problema importa por varias razones:

  • Funcionalidad del formulario: Los inputs con nombres vacíos típicamente se omiten de los datos del formulario, por lo que el servidor nunca recibe la entrada del usuario.
  • Cumplimiento de estándares: La especificación HTML requiere que si el atributo name está presente, su valor no debe estar vacío.
  • Referencias de JavaScript: Un name vacío hace difícil referenciar el elemento usando métodos como document.getElementsByName() o FormData.
  • Accesibilidad: Los lectores de pantalla y tecnologías asistivas pueden usar el atributo name para ayudar a identificar controles de formulario, y un valor vacío no proporciona información útil.

Ten en cuenta que el atributo name no es técnicamente requerido en cada elemento <input> — es perfectamente válido omitirlo completamente. Por ejemplo, inputs usados puramente para interacciones de JavaScript del lado del cliente sin envío de formulario no necesitan un name. El error surge específicamente cuando el atributo está presente pero establecido como una cadena vacía.

Para solucionar el problema, asigna un nombre significativo que describa los datos que el input recopila, o elimina el atributo name por completo si el input no es parte del envío de un formulario.

Ejemplos

❌ Atributo name vacío genera el error

<form action="/submit" method="post">
  <label for="email">Email:</label>
  <input type="email" id="email" name="">
  <button type="submit">Submit</button>
</form>

✅ Proporcionando un valor name significativo

<form action="/submit" method="post">
  <label for="email">Email:</label>
  <input type="email" id="email" name="email">
  <button type="submit">Submit</button>
</form>

✅ Eliminando name cuando el input no se envía

Si el input solo se usa para interacción del lado del cliente y no necesita ser parte de los datos del formulario, simplemente omite el atributo:

<label for="search">Filter results:</label>
<input type="text" id="search">

❌ Múltiples inputs con nombres vacíos

Este patrón a veces aparece cuando los inputs se generan dinámicamente con atributos placeholder:

<form action="/register" method="post">
  <input type="text" name="">
  <input type="password" name="">
  <button type="submit">Register</button>
</form>

✅ Cada input obtiene un nombre descriptivo

<form action="/register" method="post">
  <label for="username">Username:</label>
  <input type="text" id="username" name="username">
  <label for="password">Password:</label>
  <input type="password" id="password" name="password">
  <button type="submit">Register</button>
</form>

Encuentra problemas como este automáticamente

Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.

Ayúdanos a mejorar nuestras guías

¿Te ha sido útil esta guía?

¿Listo para validar tus sitios?
Inicia tu prueba gratuita hoy.