最近有点时间抠了一些细节, 之前项目的表单验证比较奔放, 比如H5手机号输入框,可以输入文字, 移动端点击弹出来的键盘不是数字键盘, 今天找了点时间优化一下

先上最终效果

这里主要是做了两点

1、 input 的 pattern 属性配合样式进行同步提示, 在此处表现就是输入错误的时候输入框为红色, 正确的时候为绿色

2、还有就是直接限制不能输入字符,这一点可能途中提现不出来

优化过程

1、让移动端直接弹出数字键盘

将input 的  type='"tel" 我这里设置的是 tel ,当然也可以设置成 number或者 pattern="[0-9]*"  这里几点都无法满足全部要求

type="number"  的时候 pattern="^1[3456789]\d{9}$" 无法生效, 不能配合css 做提示

2、限制输入字符

这个就直接使用 watch 监听输入做正则截取 newValue.replace(/[^\d]/g, '').substring(0, 11)

代码
<input type="tel" v-model="form_01.input_04"
pattern="^1[3456789]\d{9}$" required placeholder="请输入11位手机号">
watch: {'form_01.input_04': function (newValue, oldValue) {this.form_01.input_04 = newValue.replace(/[^\d]/g, '').substring(0, 11)}}
input,select{...&:focus:valid{border-color: #77c25b; // 获取光标 内容判断合法提示的样式}&:focus:invalid{border-color: #ff1220; // 获取光标  内容判断不合法的样式}}

这样的表单验证是比较友好的

表单验证 手机号输入框相关推荐

  1. 表单验证通过输入框获取用户输入的密码,如果输入密码为“happy123”,则显示“密码输入正确”,否则提示“密码输入错误”,如果输入三次,显示提示信息“三分钟后在尝试”

    功能:简单的表单验证,密码输入次数控制,定时器控制可输入提醒,密码匹配 Html:请忽略界面设计,没时间做 <form><input id="userName" ...

  2. vue表单验证手机号非必填验证

    { required: false, trigger: 'blur', validator: (r, v, b) => { (v && !(/^(?:(?:\+|00)86)?1 ...

  3. vue表单验证 input输入框禁止输入空格

    测试小姐姐让输入框不允许输入空格,安排. 刚开始用的下面这个方法,因为我是电脑端f12的情况下调试移动端,所以下面这个方法可以实现禁止输入空格,于是就打包测试上线了,上线后才发现真机中不支持,应该是p ...

  4. ant-design表单验证手机号身份证号

    <Form.Itemlabel="电话"name="phone"rules={[{required: true, message: '请输入电话', ma ...

  5. element ui 表单验证通过后没有绿色框 求解 (已解)

    使用element自带的表单验证. 输入框选中状态边框为蓝色, 输入框输入错误的时候边框为红色, 输入正确的时候边框为绿色. 但是有的时候输入正确没有出现绿色(红色和蓝色状态能正常出现) 我的相关代码 ...

  6. JS常用的表单验证(数字、长度,汉字,邮箱,手机号,身份证等)

    1.英文字母 >>jsp,html语句 <input type="text" οnblur="checkChart(this.value)" ...

  7. HTML表单验证(含用户名,密码,邮箱,手机号,验证码-验证)

    HTML表单验证(含用户名,密码,邮箱,手机号,验证码) 前几天对表单注册有点感兴趣,于是在课余时间了解了一些注册表单的验证方法,自己也试着做了一个表单的验证(前端验证),很low,各位童鞋应该都看得 ...

  8. element-ui表单验证(验证手机号是否正确,自定义验证规则)

    效果图 1. html <el-form :model="userForm"status-icon:rules="rules"class="lo ...

  9. vue表单验证(用户名、密码、身份证号、中文姓名、手机号、邮箱)

    vue表单验证(用户名.密码.身份证号.中文姓名.手机号.邮箱) new Vue({el: '#register',data: function() {// 验证邮箱let checkEmail = ...

最新文章

  1. DLM:微信大规模分布式n-gram语言模型系统
  2. MapReduce基础开发之一词汇统计和排序(wordcount)
  3. 横空出世,席卷Csdn [评微软等公司数据结构+算法面试100题]
  4. Android -- 贝塞尔二阶实现饿了么加入购物车效果
  5. 用jamon来监控你的sql执行效率
  6. Mvc中使用MvcSiteMapProvider实现站点地图之基础篇
  7. HMM前向算法,维比特算法,后向算法,前向后向算法代码
  8. 取得MS SQL 2000数据库一个表的所有列名
  9. C语言和其他高级语言的最大的区别是什么?
  10. mysql python 中文_python操作mysql中文显示乱码的解决方法
  11. rust程序设计语言第二版_C语言程序设计(山东联盟青岛大学版)
  12. php eval 二进制,PHP eval函数使用介绍
  13. 【文本摘要】BottleSum——文本摘要论文系列解读
  14. 图片加载框架之 ImageLoader
  15. MapReduce 1.x VS 2.x架构对比
  16. python在科学计算中的应用_Python在科学计算中的应用
  17. Android自定ViewGroup实现流式布局
  18. 进销存系统的成本核算方法一览
  19. 工作三年,回顾一下工作历程
  20. python 爬取有道词典翻译

热门文章

  1. Qt接入阿里云SDK,OSS工程,实现头像上传,Mac和Win编译库文件。
  2. SM4国密算法原理及python代码实现
  3. 网络安全态势感知和OODA模型
  4. 用Spring Security做分布式权限管理 - 卷一基本功
  5. 有苦有乐的算法 --- 计数排序
  6. AI识宠,拍照就能知道宠物品种,提供鼻纹识别、狗脸识别、宠物身份建档等
  7. Yilia使用搜狐畅言配置
  8. 行业研究-全球与中国移动现场服务解决方案市场现状及未来发展趋势
  9. react纯函数组件useState更新页面不刷新
  10. 【小程序从0到1】网络数据请求——request合法域名|GET|POST|跨域?Ajax?