¿Hay un tipo de entrada flotante en HTML5?

De acuerdo con html5.org , el atributo de valor del tipo de entrada “number”, si está especificado y no está vacío, debe tener un valor que sea un número de punto flotante válido.

Sin embargo, es simplemente (en la última versión de Chrome, de todos modos), un control “updown” con enteros, no flotantes:

 

¿Existe un elemento de entrada de punto flotante nativo de HTML5, o una forma de hacer que el tipo de entrada de número funcione con flotantes, no enteros? ¿O debo recurrir a un plugin jQuery UI?

El tipo de number tiene un valor de step que controla qué números son válidos (junto con max Y min ), Que por defecto es 1 . Este valor también es utilizado por las implementaciones para los botones de pasos (es decir, presionando aumenta por step ).

Simplemente cambie este valor a lo que sea apropiado. Para dinero, probablemente se esperan dos decimales:

  

(También establecería min=0 si solo puede ser positivo)

Si prefiere permitir cualquier número de lugares decimales, puede usar step="any" (aunque para monedas, recomendaría seguir con 0.01 ). En Chrome y Firefox, los botones de pasos boostán / disminuirán en 1 cuando se use any . (gracias a la respuesta de Michal Stefanow para señalar any , y ver las especificaciones relevantes aquí )

Aquí hay un campo de juego que muestra cómo varios pasos afectan a varios tipos de entrada:

 
Step 1 (default)
Step 0.01
Step any
Step 20
Step 60 (default)
Step 1
Step any
Step 0.001
Step 3600 (1 hour)
Step 86400 (1 day)
Step 70 (1 min, 10 sec)

Vía: http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/

Pero, ¿y si quieres que todos los números sean válidos, enteros y decimales por igual? En este caso, configure el paso a “cualquiera”

  

Funciona para mí en Chrome, no probado en otros navegadores.

Basado en esta respuesta

  

Sentido :

Código de Char:

  • 48-57 igual a 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • 0 es Backspace (de lo contrario, es necesario actualizar la página en Firefox)
  • 46 es dot

&& es AND , || es operador OR

si intentas flotar con la coma:

  

Compatible con Chromium y Firefox (Linux X64) (otros navegadores no existen)

puedes usar:

  

espero ayudar, saludos

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

Puede usar el atributo step para el número de tipo de entrada:

  

step="any" permitirá cualquier decimal.
step="1" no permitirá ningún decimal.
step="0.5" permitirá 0.5; 1; 1.5; …
step="0.1" permitirá 0.1; 0.2; 0.3; 0.4; …

Simplemente tuve el mismo problema, y ​​pude solucionarlo simplemente poniendo una coma y no un punto / punto entero 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 usted recibe un valor vacío).