Wie schränke ich die Länge von Benutzereingabezeichen für den HTML5-Eingabetyp = "Zahl" ein?

Wie beschränke ich Benutzereingaben in einem HTML5 auf eine bestimmte Länge?input[type=number] Textfeld?

die antworten auf

Wie kann ich mögliche Eingaben in einem HTML5-Element "number" einschränken?

Behandeln Sie keine illegalen Eingaben

<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);
    }
});

Ich weiß, dass das Attribut maxlength nicht unterstützt wird, verwende es jedoch, um die angegebene Länge zu erhalten.

Der obige Code funktioniert gut in Firefox, aber in Chrome und Safari funktioniert er nur, wenn ich fünf "VALID" -Zeichen eingebe. Wenn ich ungültige Zeichen eingebe, z. "a", "b" usw., ich kann mehr Buchstaben eingeben und die Textfeldfarbe wechselt zu rot.

Ich habe festgestellt, dass, wenn die Eingabe ungültig wird$field.val() gibt immer leere Zeichenkette und die zurück$field.val().length kehrt zurück0.

Ich habe sogar versucht, den keyCode in ein Zeichen umzuwandeln, das zur Eingabe gedacht ist, und in einem "Datenwert" -Attribut im Eingabefeld zu speichern, um den Wert der Eingabe zu überprüfen und zu überschreiben, aber es schien nicht zuverlässig zu sein.

Gibt es eine Lösung mit der ich das machen kann?input[type=number] benimm dich genauso wieinput[type=text][maxlength=5]?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage