O number
tipo tem um step
valor que controla quais números são válidos (junto com max
e min
), cujo padrão é 1
. Este valor também é usado pelas implementações dos botões de passo (por exemplo, pressionar para cima aumenta em step
).
Simplesmente altere esse valor para o que for apropriado. Por dinheiro, provavelmente são esperadas duas casas decimais:
<input type="number" step="0.01">
(Eu também definiria min=0
se isso só pode ser positivo)
Se você preferir permitir qualquer número de casas decimais, use step="any"
(embora seja para moedas, recomendo continuar 0.01
). No Chrome e Firefox, os botões deslizantes aumentam / diminuem em 1 ao usar any
. (obrigado pela resposta de Michal Stefanow por apontar any
e veja as especificações relevantes aqui )
Aqui está um playground mostrando como várias etapas afetam vários tipos de entrada:
<form>
<input type=number step=1 /> Step 1 (default)<br />
<input type=number step=0.01 /> Step 0.01<br />
<input type=number step=any /> Step any<br />
<input type=range step=20 /> Step 20<br />
<input type=datetime-local step=60 /> Step 60 (default)<br />
<input type=datetime-local step=1 /> Step 1<br />
<input type=datetime-local step=any /> Step any<br />
<input type=datetime-local step=0.001 /> Step 0.001<br />
<input type=datetime-local step=3600 /> Step 3600 (1 hour)<br />
<input type=datetime-local step=86400 /> Step 86400 (1 day)<br />
<input type=datetime-local step=70 /> Step 70 (1 min, 10 sec)<br />
</form>
Como sempre, adicionarei uma nota rápida: lembre-se de que a validação do lado do cliente é apenas uma conveniência para o usuário. Você também deve validar no lado do servidor!
Via: http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/
Funciona para mim no Chrome, não testado em outros navegadores.
fonte
Você pode usar:
fonte
Você pode usar o atributo step para o número do tipo de entrada:
step="any"
permitirá qualquer decimal.step="1"
não permitirá decimal.step="0.5"
permitirá 0,5; 1; 1,5; ...step="0.1"
permitirá 0,1; 0,2; 0,3; 0,4; ...fonte
Com base nesta resposta
Significado:
Código Char:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Backspace
(caso contrário, é necessário atualizar a página no Firefox)dot
&&
éAND
,||
éOR
operador.se você tentar flutuar com vírgula:
Chromium e Firefox suportados (Linux X64) (outros navegadores que não existem)
fonte
Eu faço isso
então, defino min em 0,4 e max em 0,7 com a etapa 0,01: 0,4, 0,41, 0,42 ... 0,7
fonte
Eu só tinha o mesmo problema e poderia corrigi-lo colocando uma vírgula e não um ponto / ponto final no número por causa da localização em francês .
Por isso, trabalha com:
2 está OK
2,5 está OK
2.5 é KO (o número é considerado "ilegal" e você recebe valor em branco).
fonte