Input type="number" no HTML: um testador ao vivo

Testador de input number em HTML

Input type=number no HTML: min, max, step e validação | We.Inc

Teste o input type=number ao vivo: defina min, max e step, leia valueAsNumber e cada flag de validity, remova as setas e saiba quando inputmode=numeric é o campo mais adequado.

Use input type="number" para quantidades reais, como uma idade, um preço ou uma contagem. min e max definem o intervalo permitido, step define o incremento (1 por padrão, ou any para decimais livres) e valueAsNumber devolve um número, ou NaN quando o campo está vazio. Para números de cartão e CEPs, use type="text" com inputmode="numeric".

Atributos de um campo numérico

Campos numéricos parecem simples, mas as regras sobre passos, valores vazios e as setas confundem muita gente. Defina os atributos no testador, digite qualquer coisa no campo e veja o valor bruto, o número interpretado e cada flag de validity se atualizarem enquanto você digita.

Perguntas frequentes

Por que o meu input numérico rejeita 1.5?

O step padrão é 1, então só números inteiros são válidos, a menos que a base do passo não seja inteira. Adicione step="0.5", step="0.01" ou step="any" para aceitar decimais.

O que valueAsNumber devolve para um campo vazio?

NaN. A propriedade value devolve uma string vazia no mesmo caso. Você também pode atribuir valueAsNumber para escrever um número de volta no campo.

Como removo as setas de um input numérico?

Defina appearance: textfield no input. As setas para cima e para baixo do teclado continuam mudando o valor, porque appearance só muda a aparência. WebKit e Blink também desenham os botões de incremento por meio de pseudo-elementos, que o exemplo abaixo também esconde.

Devo usar type=number ou inputmode=numeric?

Use type="number" quando o valor for uma quantidade real e as setas ajudarem. Use type="text" com inputmode="numeric" e um pattern para sequências de dígitos como números de cartão ou códigos postais, que são identificadores, não quantias.

Um campo numérico vazio é válido?

Sim, a menos que tenha o atributo required. Um input numérico é considerado válido quando está vazio ou contém um único número válido.

Como a validação funciona

Acessibilidade e celular

Qual campo para qual número

type=number comparado com um campo de texto numérico

Exemplos de campo numérico

Campo de preço com passo decimal e estilo de inválido

Digite 4.999 ou um número negativo e o contorno fica vermelho, porque o valor viola o passo ou o mínimo.

Esconder os botões de incremento

appearance: textfield remove as setas; os pseudo-elementos do WebKit cobrem os navegadores que ainda as desenham. As setas do teclado continuam funcionando.

Campo só de dígitos sem setas

inputmode sugere um teclado numérico, o pattern confere cinco dígitos e os zeros à esquerda ficam intactos.

Ler o número com segurança em JavaScript

valueAsNumber evita converter strings, e a checagem de validity pega valores fora do intervalo ou fora do passo.

Testador de input numérico

Campo de teste

O que o navegador informa

(string vazia)

Válido

Inválido

Mensagem do navegador

Copiar HTML

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site