¿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]?

Respuestas a la pregunta(4)

Su respuesta a la pregunta