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

230
Vistas
¿Cómo establecer el rango de entrada decimal usando javascript o html?

Tengo una entrada y necesito que se limite solo a estos valores:

Mín.: 0,01 máx. 999,99

Si uso maxlength="6" puedo ingresar, por ejemplo, 999.99 pero también 1000.1 que no es un valor aceptado.

Lo que he probado:

1er intento (no funciona):

 <input type="number" id="quantity" name="quantity" maxlength="6" min="0.01" max="999.99">

2do intento (parcialmente funcionando):

 let maximumFractionDigits = 2; const formatNumber = (value) => { return parseFloat(value.replace(/,/g,'')).toLocaleString('en-US', { maximumFractionDigits }); } $('input[name="test"]').on('keyup',function(){ maximumFractionDigits = 2; if (!$(this).val() || (maximumFractionDigits && $(this).val().endsWith('.'))) { return } $(this).val(formatNumber($(this).val()).replace(/,/g,'')); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> INPUT TEST <input type="text" maxlength="6" name="test" class="form-control"> <br>

Con el segundo enfoque, todavía puedo ingresar números extraños como 10000. y no se pueden ingresar valores como 0.0X (supongo que es redondeado), ¿cómo podría simplemente limitar los valores a Min: 0.01 max 999.99 ?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede verificar 3 condiciones, para los primeros 2 convertir número a cadena

  1. La longitud máxima de la cadena debe ser 6 maxlength = 6

  2. Si la cadena tiene un punto decimal, entonces .split('.') y verifique la longitud de los números const decimal = input.split('.')[1]

  3. Compruebe si el número es 0.01 < number < 999.99

about 4 years ago · Santiago Trujillo Denunciar

0

Tienes métodos para lograr lo mismo.

  1. cambie el tipo de entrada y establezca valores mínimos y máximos:
 <input type="number" min=0.01 max=999.99 name="test" class="form-control" aria-label="Equipment Procurement %">
  1. Si no desea cambiar el tipo:
 const numInput = document.querySelector(".form-control"); numInput.addEventListener("input", (event) => { const number = parseInt(e.target.value); if (number > 999.99 && number < 0.01) // throw Error or do whatever you want to do })
about 4 years ago · Santiago Trujillo Denunciar

0

Así que básicamente encontré una solución:

 const input = document.querySelector('.example'); input.addEventListener('input', updateValue); function updateValue(e) { let number = e.target.value; number = number.toString(); if(number.match(/^\d{1,3}(\.\d{1,2})?$/)){ console.log("True"); } else{ const newNum = (e.target.value).toString().slice(0, -1) e.target.value = parseFloat(newNum); } }
 <input type="number" class="form-control example" id="quantity" name="quantity" maxlength="6" min=0.01 max=999.99>

Espero que esto ayude si alguien tiene la misma situación.

about 4 years ago · Santiago Trujillo 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