From MDN's documentation for <input>
If the value of the type attribute is text
, email
, search
, password
, tel
, or url
, this attribute specifies the maximum number of characters (in Unicode code points) that the user can enter; for other control types, it is ignored.
So maxlength
is ignored on <input type="number">
by design.
Depending on your needs, you can use the min
and max
attributes as inon suggested in his/her answer (NB: this will only define a constrained range, not the actual character length of the value, though -9999 to 9999 will cover all 0-4 digit numbers), or you can use a regular text input and enforce validation on the field with the new pattern
attribute:
<input type="text" pattern="d*" maxlength="4">
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…