maxlength属性对<input type="number">不起作用。这只发生在Chrome。

<input type="number" class="test_css"  maxlength="4"  id="flight_number" name="number"/>

当前回答

您可以使用min和max属性。

下面的代码做同样的事情:

<输入类型=“数字” 最小=“-999” 最大=“9999”/>

其他回答

根据我的经验,人们问为什么maxlength被忽略的大多数问题是因为允许用户输入超过“允许”的字符数量。

正如其他注释所述,type="number"输入没有maxlength属性,而是有min和max属性。

要让字段限制可以插入的字符数量,同时允许用户在提交表单之前意识到这一点(否则浏览器应该识别值> max),您必须(至少目前)向该字段添加一个侦听器。

这是我过去使用的一个解决方案:http://codepen.io/wuori/pen/LNyYBM

对于有长度限制的数字输入,您也可以尝试这种方法

<input type="tel" maxlength="4" />

对于React用户,

只需将10替换为您的最大长度要求

 <input type="number" onInput={(e) => e.target.value = e.target.value.slice(0, 10)}/>
<input type="number" oninput="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" onKeyDown="if(this.value.length==10 && event.keyCode!=8) return false;">

演示 - JSFIDDLE

我曾经遇到过同样的问题,并根据我的需求找到了这个解决方案。 它可能对某人有帮助。

<input type="number" placeholder="Enter 4 Digits" max="9999" min="0" 
onKeyDown="if(this.value.length==4 && event.keyCode>47 && event.keyCode < 58)return false;"
/>

快乐编码:)