Skip to main content
Validación HTML

Valor inválido “” para el atributo “max” en el elemento “input”: Una cadena vacía no es un número de punto flotante válido.

Acerca de este problema HTML

El atributo max define el valor máximo que es aceptable y válido para el input que lo contiene. Cuando el navegador encuentra max="", espera un número de punto flotante válido según se define en la especificación HTML. Una cadena vacía no puede ser interpretada como un número, por lo que el atributo se vuelve sin sentido y desencadena un error de validación.

Esto ocurre comúnmente cuando el HTML se genera dinámicamente por un motor de plantillas o framework que devuelve un valor vacío para max cuando no se ha configurado ningún máximo. También puede suceder cuando un desarrollador añade el atributo como marcador de posición con la intención de completarlo más tarde.

Aunque la mayoría de navegadores ignorarán silenciosamente un valor max inválido, depender de este comportamiento es problemático por varias razones:

  • Cumplimiento de estándares: La especificación HTML requiere que max sea un número de punto flotante válido cuando está presente.
  • Validación predecible: Un max vacío significa que no se aplica ninguna restricción máxima del lado del cliente, lo que puede no ser la intención del desarrollador. Eliminar explícitamente el atributo hace que esa intención sea clara.
  • Accesibilidad: Las tecnologías de asistencia pueden leer el atributo max para comunicar las restricciones de entrada a los usuarios. Un valor vacío podría llevar a comportamientos confusos o indefinidos.

Este error se aplica a tipos de input que aceptan valores max de estilo numérico, incluyendo number, range, date, datetime-local, month, week, y time.

Cómo solucionarlo

  1. Establece un valor numérico válido: Si necesitas una restricción máxima, proporciona un número de punto flotante apropiado (por ejemplo, max="100" o max="99.5").
  2. Elimina el atributo: Si no se necesita ningún máximo, elimina el atributo max completamente en lugar de dejarlo vacío.
  3. Corrige las plantillas dinámicas: Si tu HTML se genera desde una plantilla, añade una verificación condicional para que max solo se renderice cuando un valor esté realmente disponible.

Ejemplos

❌ Inválido: Atributo max vacío

<label for="quantity">Cantidad:</label>
<input type="number" id="quantity" name="quantity" max="">

La cadena vacía "" no es un número de punto flotante válido, por lo que esto desencadena el error de validación.

✅ Corregido: Proporcionando un valor numérico válido

<label for="quantity">Cantidad:</label>
<input type="number" id="quantity" name="quantity" max="100">

✅ Corregido: Eliminando el atributo completamente

<label for="quantity">Cantidad:</label>
<input type="number" id="quantity" name="quantity">

Si no se necesita ninguna restricción máxima, simplemente omite el atributo max.

❌ Inválido: max vacío en un input de fecha

<label for="end-date">Fecha de fin:</label>
<input type="date" id="end-date" name="end-date" max="">

✅ Corregido: Valor de fecha válido para max

<label for="end-date">Fecha de fin:</label>
<input type="date" id="end-date" name="end-date" max="2025-12-31">

Para tipos de input relacionados con fechas, el valor max debe estar en el formato de fecha/hora apropiado (por ejemplo, YYYY-MM-DD para type="date").

Corrigiendo plantillas dinámicas

Si estás generando HTML con un lenguaje de plantillas, incluye condicionalmente el atributo solo cuando existe un valor. Por ejemplo, en una plantilla estilo Jinja2:

<input type="number" id="price" name="price"
  {% if max_price %}max="{{ max_price }}"{% endif %}>

Esto asegura que el atributo max solo se renderice cuando max_price tenga un valor válido, evitando el problema de la cadena vacía por completo.

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.