El number
tipo tiene un step
valor que controla qué números son válidos (junto con max
y min
), que por defecto es 1
. Este valor también lo usan las implementaciones para los botones paso a paso (es decir, presionar hacia arriba aumenta en step
).
Simplemente cambie este valor a lo que sea apropiado. Por dinero, probablemente se esperan dos decimales:
<input type="number" step="0.01">
(También establecería min=0
si solo puede ser positivo)
Si prefiere permitir cualquier número de decimales, puede usar step="any"
(aunque para las monedas, le recomiendo que se quede 0.01
). En Chrome y Firefox, los botones paso a paso aumentarán / disminuirán en 1 cuando se usen any
. (gracias a la respuesta de Michal Stefanow por señalar any
y ver la especificación relevante aquí )
Aquí hay un patio de recreo que muestra cómo varios pasos afectan a los distintos 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 de costumbre, agregaré una nota rápida: recuerde que la validación del lado del cliente es solo una conveniencia para el usuario. ¡También debe validar en el lado del servidor!
Vía: http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/
Funciona para mí en Chrome, no probado en otros navegadores.
fuente
Puedes usar:
fuente
Puede usar el atributo de paso para el número de tipo de entrada:
step="any"
permitirá cualquier decimal.step="1"
no permitirá decimales.step="0.5"
permitirá 0.5; 1; 1,5; ...step="0.1"
permitirá 0.1; 0.2; 0.3; 0.4; ...fuente
Basado en esta respuesta
Sentido :
Código de char:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Backspace
(de lo contrario, necesita actualizar la página en Firefox)dot
&&
esAND
,||
esOR
operador.si intentas flotar con coma:
Chromium y Firefox compatibles (Linux X64) (otros navegadores no existen)
fuente
Lo hago
luego, defino min en 0.4 y max en 0.7 con el paso 0.01: 0.4, 0.41, 0,42 ... 0.7
fuente
Simplemente tuve el mismo problema, y pude solucionarlo simplemente poniendo una coma y no un punto / punto en el número debido a la localización en francés .
Entonces funciona con:
2 está bien
2,5 está bien
2.5 es KO (el número se considera "ilegal" y recibe un valor vacío).
fuente