为什么input type =“number”控件不支持maxlength属性?

时间:2013-11-15 14:01:46

标签: html5

为什么input type="number" control的HTML 5规范不包含对maxlength属性的支持?

浏览Stack Overflow以查找与input type number maxlength等搜索字词匹配的问题,似乎有很多Web应用程序要求显示需要用户输入数字的控件,但也限制了输入字段到特定的最大字符数。

从Stack Overflow这些问题的答案来看,大多数应用程序最终登陆的解决方案似乎是使用某种方式的Javascript“hack”来限制控件中出现的字符数,或者使用input type="text"控件(长期支持maxlength属性)而不是较新的input type="number"

对于这个常见要求,似乎更清晰的解决方案是允许maxlength使用input type="number"控件。

我了解特定的max属性值可能并不总是直接对应maxlength属性值 - 例如如果控件中允许的最大数量类似于50而不是99 - 但除此之外,HTML 5规范不包含对{{1}的支持的原因是什么属性?

2 个答案:

答案 0 :(得分:1)

根据这里找到的答案:https://stackoverflow.com/a/18510925/1507210

您可以将此语法与文本字段交替使用,以获得您正在寻找的内容,而无需通过使用正则表达式匹配的模式字段引入字母:

<input type="text" pattern="\d*" maxlength="4">

虽然正如我在评论中所述,但我认为你没有理由想要限制max未能解决问题的数字的长度,并且更优雅。

一个例子是,在您的号码控制变为负数的情况下。使用长度属性会打破负数,因为maxlength为1的数字不允许'-1',因为它是两个字符。只允许minmax,它会阻止那些没有考虑编写代码的程序员在有人试图进入负数时立即破解。

答案 1 :(得分:0)

因为通常将数值转换为特定类型,例如integer。有符号整数是一个4字节的数字,我们知道,这种类型的最大值和最小值是多少,而不是max_length。

我认为这就是原因。