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属性汇总
Jul 21 HTML / CSS
使用CSS3制作饼状旋转载入效果的实例
Jun 23 HTML / CSS
详解CSS3 Media Queries中媒体属性的使用
Feb 29 HTML / CSS
CSS3 3D酷炫立方体变换动画的实现
Mar 26 HTML / CSS
canvas画布实现手写签名效果的示例代码
Apr 23 HTML / CSS
html5生成柱状图(条形图)效果的实例代码
Mar 25 HTML / CSS
使用HTML5里的classList操作CSS类
Jun 28 HTML / CSS
详解HTML5 Canvas标签及基本使用
Jan 10 HTML / CSS
css 中多种边框的实现小窍门
Apr 07 HTML / CSS
css3应用示例:新增的选择器
Mar 16 HTML / CSS
前端使用svg图片改色实现示例
Jul 23 HTML / CSS
table不让td文字溢出操作方法
Dec 24 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 之Section与Cookie使用总结
2012/09/14 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
深入了解PHP中的Array数组和foreach
2016/11/06 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
2013/02/01 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
最实用的JS数组函数整理
2017/12/05 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
VUE中v-on:click事件中获取当前dom元素的代码
2018/08/22 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
简单的通用表达式求10乘阶示例
2014/03/03 Python
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
Python3数字求和的实例
2019/02/19 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
python3.4中清屏的处理方法
2020/07/06 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
为什么要使用servlet
2016/01/17 面试题
行政总监岗位职责
2013/12/05 职场文书
防火标语大全
2014/10/06 职场文书
贷款承诺书
2015/01/20 职场文书
MySQL Server 层四个日志
2022/03/31 MySQL
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技