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点击按钮实现背景渐变动画效果
Oct 19 HTML / CSS
css3实现背景模糊的三种方式(小结)
May 15 HTML / CSS
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
Nov 16 HTML / CSS
HTML5里autofocus自动聚焦属性使用介绍
Jun 22 HTML / CSS
html通过canvas转成base64的方法
Jul 18 HTML / CSS
canvas仿写贝塞尔曲线的示例代码
Dec 29 HTML / CSS
HTML5 canvas 瀑布流文字效果的示例代码
Jan 31 HTML / CSS
详解Html5页面实现下载文件(apk、txt等)的三种方式
Oct 22 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
Dec 21 HTML / CSS
canvas生成带二维码海报的踩坑记录
Sep 11 HTML / CSS
基于html5 canvas做批改作业的小插件
May 20 HTML / CSS
详解Html5项目适配系统深色模式方案总结
Apr 14 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
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
php jquery 多文件上传简单实例
2013/12/23 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
input 高级限制级用法
2009/03/26 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
python中的一些类型转换函数小结
2013/02/10 Python
Python中使用HTMLParser解析html实例
2015/02/08 Python
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
Python中的id()函数指的什么
2017/10/17 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
Python实现购物车程序
2018/04/16 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
调解员先进事迹材料
2014/02/07 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android