¿Cómo restringir la longitud del carácter de entrada del usuario del tipo de entrada HTML5 = "número"?
¿Cómo restrinjo la entrada del usuario a una longitud dada en un HTML5?input[type=number]
¿caja de texto?
las respuestas a
¿Cómo puedo limitar las entradas posibles en un elemento "número" de HTML5?
no manejar entradas ilegales
<input class="quantity" type="number" min="0" max="99999" maxlength="5" />
$("quantity").keyup(function(){
var $field = $(this);
if ($field.val().length > Number($field.attr("maxlength"))) {
var value = $field.val().slice(0, 5);
$field.val(value);
}
});
Sé que el atributo maxlength no es compatible, pero lo uso para obtener la longitud dada.
El código anterior funciona bien en Firefox, pero en Chrome y Safari funciona solo si ingreso cinco caracteres "VÁLIDOS". Cuando empiezo a escribir cualquier carácter no válido, por ejemplo. "a", "b", etc., puedo escribir más letras y el color del cuadro de texto cambia a rojo.
Encontré que cuando la entrada se vuelve inválida la$field.val()
devuelve siempre cadena vacía y la$field.val().length
devoluciones0
.
Incluso intenté convertir el código de clave en un carácter destinado a ingresar y almacenarlo en un atributo de "valor de datos" en el cuadro de entrada para verificar y sobrescribir el valor de la entrada, pero no parecía ser confiable.
¿Hay alguna solución con la que pueda hacer elinput[type=number]
comportarse igual queinput[type=text][maxlength=5]
?