这是一个小细节,以前很少注意,直到最近做的一个项目,当我把一个输入数字的input框的类型设置为number时,input框还是可以无限输入,设置maxlengh=10就不起作用了,然后我就去百度了一下,type设置为tel时,maxlength就起作用了。为什么呢?
这里我先说一下input框type=tel和type=number的区别。
首先HTML5加入了新的input类型 number,这是方便数量输入的。如果是在移动端中,属性type=”number”和type=”tel”会唤起系统的数字键盘,这对于交互还是挺友好的。
*但是type并不能作为验证依据,
type字段只是为输入提供选择格式,
更多情况下应该说新增的type是为了适配移动端web app的存在
例如说当type=tel的时候,在手机上打开页面会出现电话键盘(不是数字键盘,两者并不一样,电话键盘还包括*和#)
当type=email的时候,会出现带@和.com符号的全键盘(各设配各系统实现貌似有差异)
所以才要有pattern的存在,
当触发表单提交的时候,浏览器会将输入与pattern属性做匹配来最终判断是否有效输入
当然了,后端验证数据有效性就在此问题的范畴之外了*
我推荐一篇文章,这篇文章把input框的各种属性讲的很清楚,文章链接
项目总结(input输入框type设置为number,maxlength无效,设置为tel,maxlength有效)
最新推荐文章于 2025-05-06 22:15:55 发布
本文探讨了HTML5中input框type=tel与type=number的区别,特别是在maxlength属性的应用上。通过对比不同类型的输入框,解释了为何type=number不支持maxlength限制,并推荐了一篇详细介绍input框各种属性的文章。
&spm=1001.2101.3001.5002&articleId=82586270&d=1&t=3&u=b04dcd66e4ba4f919ec2e3ce8d6dd592)
1万+

被折叠的 条评论
为什么被折叠?



