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

148
Vistas
No se puede limitar el valor de <entrada> en tiempo real

En mi código, tengo un HTML <input> que toma números y tiene la siguiente función vinculada al atributo onclick :

 function checkValue() { let sender = document.getElementById("articoli-quantita-uscita"); let min = sender.min; let max = sender.max; let value = parseInt(sender.value); if (value>max) { sender.value = max; } else if (value<min) { sender.value = min; } } <input class="form-control" type="number" id="articoli-quantita-uscita" name="articoli-quantita-uscita" value="1" onclick="checkValue()">

Tengo la función colocada en una etiqueta en la parte superior de mi cuerpo.

Esta función toma el valor de entrada y lo transforma al mínimo o al máximo si el usuario ingresa manualmente (desde el teclado y no desde las flechas de entrada) un valor mayor que el máximo o menor que el mínimo.

Incluso si he usado este fragmento de código en otro elemento de mi aplicación web y siempre funcionó, parece que ahora no funciona y, de hecho, el error que produce es que:

  • Escribo un valor mayor/menor que el máximo,
  • el valor de entrada no cambia,
  • Hago clic fuera del cuadro de entrada,
  • Vuelvo a hacer clic en el cuadro de entrada y el valor de entrada se "actualiza" como máximo/mínimo.

Además, configuro el máximo y el mínimo mediante programación en algún punto del código a partir de los datos que recibo del servidor, registro el máximo después de configurarlo y muestra el valor correcto.

No entiendo por qué en esta página HTML (que es muy similar a las demás) no funciona, mientras que en otras páginas HTML de mi proyecto hace lo que se supone que debe hacer.

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

0

Puede usar el método addEventListener para adjuntar el detector de eventos directamente en lugar de usar javascript en línea.

También debe escuchar cuando el usuario cambia la entrada en lugar de cuando hace clic en ella; de lo contrario, es posible que su validación no se aplique en algunas situaciones.

El evento de change es bueno para hacer eso.

 let sender = document.getElementById("articoli-quantita-uscita"); sender.addEventListener("input", function (event){ let min = sender.min; let max = sender.max; let value = parseInt(sender.value); if (value > max) { sender.value = max; } else if (value < min) { sender.value = min; } });
 <input class="form-control" type="number" id="articoli-quantita-uscita" name="articoli-quantita-uscita" value="1" min="0" max="10" style="width: 200px" >

about 4 years ago · Juan Pablo Isaza Denunciar

0

Cámbielo de onclick() a onchange().

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