无法在HTML5中为数字字段设置maxlength属性

时间:2014-10-09 09:56:05

标签: html html5

这是一个文本字段。请参阅..我将maxlength属性设置为10.因此,只能输入10个字符

<input maxlength="10" id="txt_name" name="txt_name" type="text" required="required"/>

这是一个数字字段。我希望它的最大长度为10,这样用户就可以输入他们的10位数手机号码。这限制了用户输入其他数字。

 <input id="txt_mob" name="txt_mob" type="number" maxlength="10"/>

但是maxlength无法使用数字字段。为什么??有没有办法在不使用Javascript或jQuery的情况下执行此操作?

这是FIDDLE

5 个答案:

答案 0 :(得分:1)

数字类型不接受属性maxlength。 你可以试试这个

将类型设置为文本并使用它。

此脚本只接受数字输入,将其放在页面的头部。

<script>
function isNumber(event) {
  if (event) {
    var charCode = (event.which) ? event.which : event.keyCode;
    if (charCode != 190 && charCode > 31 && 
       (charCode < 48 || charCode > 57) && 
       (charCode < 96 || charCode > 105) && 
       (charCode < 37 || charCode > 40) && 
        charCode != 110 && charCode != 8 && charCode != 46 )
       return false;
  }
  return true;
}
</script>

然后在输入字段中使用此

onkeydown="return isNumber(event);"

例如

<input type="text" onkeydown="return isNumber(event);" maxlength="10" />

答案 1 :(得分:1)

来自mdn,

如果type属性的值是text,email,search,password,tel或url,则此属性指定用户可以输入的最大字符数(以Unicode代码点为单位);对于其他控件类型,它将被忽略。

因此

会忽略maxlength
     <input type="number">

按设计。因此,您可以使用常规文本输入并使用新模式属性

对字段强制执行验证
     <input type="text" pattern="([0-9]{3})" maxlength="4">

希望它有所帮助...

答案 2 :(得分:0)

对于输入编号,您需要使用min / max属性:

<input type="number" id="txt_mob" name="txt_mob" min="1" max="5">

您可以在w3schools网站上看到一个示例:

http://www.w3schools.com/tags/att_input_max.asp

答案 3 :(得分:0)

对于类型编号的输入元素,您不能使用maxlength,该属性仅用于字符串。对于数字,您可以使用min =&#34; 0&#34;和max =&#34; 10&#34;。 你可以在这里看到一个例子:

http://www.w3schools.com/tags/att_input_max.asp

答案 4 :(得分:0)

您可以使用<input type="number" name="quantity" min="1" max="9999999999">