Skip to main content
Validação HTML

Valor inválido “” para o atributo “min” no elemento “input”: A string vazia não é um número de vírgula flutuante válido.

Sobre este problema HTML

O atributo min define o valor mínimo aceitável para tipos de input de formulário como number, range, date, time, datetime-local, week e month. Quando o browser ou o validador W3C encontra min="", tenta interpretar a string vazia como um número de vírgula flutuante e falha porque a string vazia não é uma representação válida de qualquer número segundo as regras da especificação HTML para interpretar números de vírgula flutuante.

Este problema surge frequentemente quando motores de templates ou código server-side definem dinamicamente o atributo min mas produzem um valor vazio quando não há mínimo configurado, ou quando programadores adicionam o atributo como placeholder com a intenção de o preencher mais tarde.

Porque isto é importante

  • Conformidade com standards: A especificação HTML exige explicitamente que o valor do atributo min seja um número de vírgula flutuante válido (para tipos numéricos) ou uma string de data/hora válida (para tipos de data/hora). Uma string vazia não satisfaz nenhum dos requisitos.
  • Comportamento imprevisível do browser: Quando os browsers encontram um valor min inválido, tipicamente ignoram completamente o atributo. Isto significa que a sua restrição pretendida desaparece silenciosamente, permitindo potencialmente que utilizadores submetam valores fora do intervalo.
  • Preocupações de acessibilidade: Tecnologias assistivas podem depender de min e max para comunicar intervalos de input válidos aos utilizadores. Um valor inválido pode levar a orientações confusas ou em falta para utilizadores de leitores de ecrã.
  • Problemas de validação de formulário: A validação incorporada do browser usando a Constraint Validation API depende de valores min válidos. Uma string vazia pode causar comportamentos inconsistentes da validação nativa do browser entre diferentes browsers.

Como corrigir

Tem duas opções diretas:

  1. Forneça um valor válido: Defina min com o número mínimo real ou string de data/hora que pretende impor.
  2. Remova o atributo: Se não for necessária qualquer restrição mínima, simplesmente omita o atributo min. O input aceitará então qualquer valor dentro do intervalo natural do seu tipo.

Se o seu valor min provém de lógica dinâmica server-side ou JavaScript, certifique-se de que o atributo só é renderizado quando um valor válido está disponível, em vez de produzir uma string vazia como alternativa.

Exemplos

❌ Inválido: string vazia para min

<input type="number" min="" max="10">

A string vazia "" não é um número de vírgula flutuante válido, por isso isto desencadeia o erro de validação.

✅ Corrigido: forneça um número válido

<input type="number" min="0" max="10">

✅ Corrigido: remova min se não for necessário mínimo

<input type="number" max="10">

❌ Inválido: min vazio num input range

<input type="range" min="" max="100" step="5">

✅ Corrigido: min válido num input range

<input type="range" min="0" max="100" step="5">

❌ Inválido: min vazio num input date

<input type="date" min="" max="2025-12-31">

Para inputs de data, min deve ser uma string de data válida no formato YYYY-MM-DD — uma string vazia é igualmente inválida aqui.

✅ Corrigido: min válido num input date

<input type="date" min="2025-01-01" max="2025-12-31">

Lidar com valores dinâmicos em templates

Se estiver a usar uma linguagem de templating e o valor mínimo pode nem sempre existir, renderize condicionalmente o atributo em vez de produzir um valor vazio. Por exemplo, num pseudocódigo de template genérico:

<!-- Em vez de sempre produzir o atributo: -->

<input type="number" min="" max="10">

<!-- Inclua-o apenas quando um valor estiver disponível: -->

<input type="number" min="5" max="10">

Na prática, use a lógica condicional do seu motor de templating (por exemplo, {% if min_value %}min="{{ min_value }}"{% endif %} em Jinja2, ou construções similares) para garantir que min só está presente quando contém um valor válido.

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.