Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

345
Vistas
¿Cómo omitir el análisis de valor de HTMLInputElement al configurar el valor de entrada de número a través de JavaScript?

Estoy desarrollando un teclado táctil para un proyecto y me encuentro con este problema que no he podido resolver de manera aceptable.

El problema principal es cuando escribo un decimal en el teclado táctil en un campo numérico, la entrada se borra porque cuando configuro el texto a través de JavaScript: htmlinputelement.value = "161."

Recibo el siguiente error: The specified value "161." cannot be parsed, or is out of range.

He visto algunas preguntas similares ( el valor especificado no se puede analizar o está fuera de rango cuando se usa el canal numérico , el valor especificado "." no se puede analizar o está fuera de rango , y algunos otros)

El problema se resuelve si cambié el tipo de entrada de 'número' a 'texto'. Pero hacer esto abre otros problemas. Algunos de los campos de entrada usan la propiedad de paso y tenemos otra validación de entrada que no se puede usar si el tipo no es 'número'.

Entonces mis preguntas son

  1. ¿Cómo puedo escribir (usando un teclado USB) un decimal en un campo de entrada de número de tipo sin este problema? (¿Cómo maneja el campo de entrada HTML los cambios de valor?). Pregunto esto porque puedo escribir 1. sin problemas, pero cuando lo configuro mediante programación, analiza el valor y falla.
  2. ¿Es posible omitir el análisis de valor de HTMLInputElement al configurarlo?

Editar: mi solución más reciente que parece crear la menor cantidad de casos extremos/otros problemas es cambiar temporalmente el tipo de entrada a 'texto' para permitir la visualización decimal, luego cambiar el tipo de nuevo a número después de la siguiente entrada. ¡Déjenme saber sus pensamientos sobre esto!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede usar parseFloat() (o incluso parseFloat().toString() si realmente lo desea).
Es un poco más largo que un +"0" , pero no es necesario que verifique la presencia de . .

 function doTest(event){ document.getElementById("input").value=parseFloat(event.target.innerText); }
 <input type="number" id="input"><br> <button onclick="doTest(event)">1</button> <button onclick="doTest(event)">2.</button> <button onclick="doTest(event)">.3</button> <button onclick="doTest(event)">4.5</button>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda