HTML5 表单验证失败的提示语问题


Posted in HTML / CSS onJuly 13, 2017

前言

前端的童鞋在写页面时, 都不可避免的总会踩到 表单验证 这个坑. 这时候, 我们就要跪了, 因为要写一堆 js 来检查. 但是自从 H5 出现后, 很多常见的 表达验证 , 它都已经帮我们实现了, 让我们减轻了很多负担, 就好像下面的:

邮箱地址验证:
 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
</head>
<body>
    <form action="">
        <label >
            邮箱: <input type="email">
        </label>
        <input type="submit">
    </form>
</body>
</html>

HTML5 表单验证失败的提示语问题

邮箱验证是 H5 自身支持的, 但是我们要验证的场景和情况是多种多样的, 那该怎么办? 用回 Js 吗? 很明显没这么蛋疼, 因为 H5 提供了 pattern 属性, 让我们自食其力! 我们可以在 pattern 指定正则表达式, 只要正则写的好, 验证就没烦恼!

正则限定11位数字:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
</head>
<body>
    <form action="">
        <label >
            数字: <input type="text" pattern="^\d{11}$">
        </label>
        <input type="submit">
    </form>
</body>
</html>

HTML5 表单验证失败的提示语问题

问题

大家可以尝试下, 在输入非11位的数字, 都会报错, 这就是 pattern 的功劳. 但是不知道大家发现了一个蛋疼的现象没? 就是如果咱们使用 pattern 的方式去验证表单, 在验证失败时, 它的提示都是 请与所请求的格式保持一致 , 我的天, 我们的用户怎么知道所请求的格式是什么鬼, 总不能让他们去看源码吧, 要真这样, 我们连页面都不用写了, 直接让他们把钱给我们得了, 开个玩笑~

解决方案

有问题, 咱们就得解决, 在面向谷歌编程许久, 终于觅得一良方:

oninvalid:提交的input元素的值为无效值时(这里是正则验证失败),触发

oninvalid事件。oninvalid属于Form 事件。

setCustomValidity():这个是HTML5内置的JS方法,用来自定义提示信息

原来可以通过 oninvalid 和 setCustomValidity 来自定义提示, 那这就好办了, 修改源代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
</head>
<body>
    <form action="">
        <label >
            数字: <input type="text" pattern="^\d{11}$" oninvalid="setCustomValidity('请输入11位数字')">
        </label>
        <input type="submit">
    </form>
</body>
</html>

结果:

HTML5 表单验证失败的提示语问题

终于不是那个蛋疼的"格式"了, 现在表单验证提示已经很明确的告诉我们, 这里应该输入的是什么样的数据, 这样用户就能更好的修改自己的输入了!

以上所述是小编给大家介绍的HTML5 表单验证失败的提示语问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

HTML / CSS 相关文章推荐
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
Mar 16 HTML / CSS
解决margin 外边距合并问题
Jul 03 HTML / CSS
animation和transition的区别
Oct 12 HTML / CSS
详解使用canvas保存网页为pdf文件支持跨域
Nov 23 HTML / CSS
X/HTML5 和 XHTML2
Oct 17 HTML / CSS
自定义html标记替换html5新增元素
Oct 17 HTML / CSS
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
Jan 30 HTML / CSS
HTML5 canvas基本绘图之图形组合
Jun 27 HTML / CSS
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
Oct 26 HTML / CSS
一文彻底解决HTML5页面中长按保存图片功能
Jun 10 HTML / CSS
开发微信小程序之WXSS样式教程
Apr 18 HTML / CSS
el-form每行显示两列底部按钮居中效果的实现
Aug 05 HTML / CSS
HTML5地理定位_动力节点Java学院整理
Jul 12 #HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
Jul 11 #HTML / CSS
html5组织内容_动力节点Java学院整理
Jul 10 #HTML / CSS
html5页面结构_动力节点Java学院整理
Jul 10 #HTML / CSS
HTML5单页面手势滑屏切换原理分析
Jul 10 #HTML / CSS
HTML5中图片之间的缝隙完美解决方法
Jul 07 #HTML / CSS
html5是什么_动力节点Java学院整理
Jul 07 #HTML / CSS
You might like
用php写的serv-u的web申请账号的程序
2006/10/09 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
js时间控件只显示年月
2017/01/08 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
python在linux中输出带颜色的文字的方法
2014/06/19 Python
python之Socket网络编程详解
2016/09/29 Python
Python中生成Epoch的方法
2017/04/26 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
基于Django统计博客文章阅读量
2019/10/29 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
民事上诉状范文
2015/05/22 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
浅谈redis五大数据结构和使用场景
2021/04/12 Redis
react如何快速设置文件路径别名
2021/04/28 Javascript