无法为 HTML5 中的数字字段设置 maxlength 属性 [重复]

Posted

技术标签:

【中文标题】无法为 HTML5 中的数字字段设置 maxlength 属性 [重复]【英文标题】:Unable to set maxlength property for number field in HTML5 [duplicate] 【发布时间】:2014-12-04 05:02:51 【问题描述】:

这是一个文本字段。见..我将 maxlength 属性设置为 10。所以,只能输入 10 个字符

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

这是一个数字字段。我也希望它的 maxlength 为 10,以便用户可以输入他们的 10 位手机号码。这会限制用户输入额外的数字。

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

但 maxlength 不适用于数字字段。为什么??有什么方法可以在不使用 javascript 或 jQuery 的情况下做到这一点?

这是FIDDLE。

【问题讨论】:

添加最小和最大问题解决 来吧,伙计!严重地??? @user1478 请在评论或回答之前阅读完整的问题。 除了重复之外,这是一个错误的问题,因为您不应该使用type=number 作为电话号码。对他们来说,html5 有type=tel 【参考方案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" />

【讨论】:

我知道这段代码。我有这个。我每次都用它。但是如果 JavaScript 在用户的浏览器中被禁用怎么办? @ruben450【参考方案2】:

来自 mdn,

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

所以 maxlength 在

上被忽略
     <input type="number">

设计。因此,您可以使用常规文本输入并使用新模式属性对字段强制验证

     <input type="text" pattern="([0-9]3)" maxlength="4">

希望对你有所帮助...

【讨论】:

【参考方案3】:

对于 number 类型的输入元素,您不能使用 maxlength,该属性仅适用于字符串。对于数字,您可以使用 min="0" 和 max="10"。 您可以在此处查看示例:

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

【讨论】:

【参考方案4】:

您可以使用&lt;input type="number" name="quantity" min="1" max="9999999999"&gt;

【讨论】:

【参考方案5】:

对于输入数字,您需要使用 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

【讨论】:

以上是关于无法为 HTML5 中的数字字段设置 maxlength 属性 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

仅在两个文本字段之一中的 Ipad 数字

SQL中怎么设置字段为10位数字。

使用 HTML 输入类型的数字键盘显示

尝试仅允许将数字输入JTextField,将非数字设置为0

求助大神:arcgis10.2添加字段后无法输入数字的问题,如图

用于数字标牌的 Chrome 中的 HTML5 视频自动播放