Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

164
Views
número de tipo de entrada - valor máximo

tengo una entrada

 <input type="number" max="100">

Sin embargo, si el usuario escribe manualmente por ejemplo 200, la entrada lo acepta. ¿Es algo normal?

Puedo validar la entrada con javascript, pero si hay una compilación en la entrada html, sería genial :)

Gracias

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

En realidad, no hay una forma HTML "nativa" fuera de una publicación de formulario para evitar la entrada manual defectuosa. Podrías hacer algo como esto (aquí código jquery):

 $('input[type="number"]').on('change input keyup paste', function () { if (this.max) this.value = Math.min(parseInt(this.max), parseInt(this.value) || 0); });

Este código se aplica a todas las entradas de tipo número en caso de entrada de teclado, pegado, cambio de un método de validación que verifique si existe un valor máximo y, de ser así Math.min() devuelve el número de valor más bajo que se le pasó. Si el valor no es un número, se devuelve 0.

Ver una demostración en JSFiddle

En Vanilla JavaScript, el controlador se vería así:

 var numElement = document.querySelector('input[type="number"]') numElement.addEventListener('change', validateMax); numElement.addEventListener('input', validateMax); numElement.addEventListener('keyup', validateMax); numElement.addEventListener('paste', validateMax); function validateMax() { if (this.max) this.value = Math.min(parseInt(this.max), parseInt(this.value) || 0); }

Vea una demostración de la versión vainilla en JSFiddle

Este controlador debería hacer el truco.

about 4 years ago · Juan Pablo Isaza Report

0

No creo que haya una solución directamente con HTML; los atributos max y min solo funcionan al hacer clic en las teclas de flecha arriba y flecha abajo. Consulte la publicación en la sección de referencias para obtener más información. La siguiente imagen muestra que la entrada no cambia cuando se hace clic en el botón de flecha hacia arriba, ya que el atributo max es 100:

ingrese la descripción de la imagen aquí

En la solución a continuación, cuando se activa el evento de input del elemento <input> , la entrada de datos se verifica al verificar el atributo max con el método isValid() . Puede cambiar la propiedad disabled del botón de envío de acuerdo con el resultado devuelto por el método isValid() .

 const inputElement = document.querySelector('input'); function isValid(value){ if(parseInt(value) <= inputElement.getAttribute('max')) return true; return false; } inputElement.addEventListener('input', function () { if(isValid(this.value)) console.log("true"); else console.log("false"); });
 <input type="number" max="100">


Referencias
  • ¿Cómo puedo limitar las posibles entradas en un elemento de "número" de HTML5?
about 4 years ago · Juan Pablo Isaza Report

0

Si está utilizando un formulario, puede marcarlo como requerido y el formulario realiza la validación por usted.

 document.getElementById("myForm").addEventListener("submit", function (event) { event.preventDefault(); console.log(document.getElementById("myNumber").value); });
 <form id="myForm"> <input id="myNumber" name="myNumber" type="number" max="100" required > <button>Send It</button> </form>

Ahora, si desea saber si es válido en JavaScript directamente, hay métodos integrados para eso

 document.getElementById("myForm").addEventListener("submit", function(event) { event.preventDefault(); console.log(document.getElementById("myNumber").value); }); document.getElementById("check").addEventListener("click", function(event) { console.log("form: ", document.getElementById("myForm").checkValidity()); console.log("input: ", document.getElementById("myNumber").validity.valid); });
 <form id="myForm"> <input id="myNumber" name="myNumber" type="number" max="100" required> <button>Send It</button> </form> <button type="button" id="check">Check It</button>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!