zoukankan      html  css  js  c++  java
  • input输入框type设置为number,maxlength无效

    一个小细节,以前很少注意,直到最近做的一个项目,当我把一个输入数字的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 type="number" name="phone" id="phone" value="phone" oninput="if(value.length>11)value=value.slice(0,11)" />
  • 相关阅读:
    如何做兼容性测试
    python批量转换excl为csv
    mysql删除用户后再次创建用户报错
    xadmin
    CORS跨域资源共享
    drf自定义公共组件
    luffy项目前端初始化
    luffy项目后端初始化
    企业级项目的环境准备
    base64编码的使用
  • 原文地址:https://www.cnblogs.com/uzxin/p/12164811.html
Copyright © 2011-2022 走看看