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

141
Vistas
Limit the amount of digits allowed in a Number Input javascript

I have a number input: <input type = 'number>, and I needed to know how to limit the amount of integers that you could insert into the input

So I came up with what's in the snippet, but are there any other solutions that may be faster to implement, or just better in general.

This question has a similar answer, but I am trying to scour the internet to see if there is a better answer to it.

Similar Question

EDIT: I have found the answer that works to it, and I am looking for something of a one liner that would work. Something like the max = '4' or the input's version of it maxlength = '4'

const Input  = document.getElementById('input')

function limitDigits(element, amount) {
  element.addEventListener('input', () => {
    if (element.value.length > amount) {
        element.value = Math.floor(element.value/10)
      } 
  }) 
}
 
limitDigits(Input, 4)
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
#input {
  width:30px;
}
<input id = 'input' type = 'number'>

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

0

The only thing more efficient (especially if you are using this functionality more than once) would be to make it more reusable - that way you don't have to instantiate it each time through code.

document.addEventListener('DOMContentLoaded', () => {
  document.querySelectorAll('[maxlength]').forEach(input => {
    input.addEventListener('input', e => {
    let val = e.target.value, len = +e.target.getAttribute('maxlength');
      e.target.value = val.slice(0,len);
    })
  })
})
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

#input {
  width: 30px;
}
<input maxlength='4' type='number'>

about 4 years ago · Juan Pablo Isaza Denunciar

0

You can use the maxlength attribute to do this:

<input id='input' type='text' maxlength='10'>

Unfortunately, this does not work on input of type number. A workaround can be found here: maxlength ignored for input type="number" in Chrome

about 4 years ago · Juan Pablo Isaza Denunciar

0

A good place to learn about HTML is MDN, which has a dedicated page for <input type="number">.

The list of attributes includes:

max

The maximum value to accept for this input.

Note that a number field is designed to represent an actual numeric value, not a string which happens to be made up of digits. So rather than "less than 4 digits long", you need to say "a value less than or equal to nine thousand, nine hundred and ninety-nine":

<input id='input' type='number' max='9999'>

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