使用HTML5的表单验证的简单示例


Posted in HTML / CSS onSeptember 09, 2015

HTML5对表单元素提供了patern属性,它接受一个正则表达式。表单提交时这个正则表达式会被用于验证表单内非空的值,如果控件的值不匹配这个正则表达就会弹出提示框,并阻止表达提交。提示框内的文字可以使用setCustomValidity方法来自定义。

比如下面这个表单内,文本框只接受大陆的手机号,输入其它东西就无法提交
运行

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>  
  2. <form>  
  3.   <input id="text" pattern="^1[3-9]\d{9}$" required />  
  4.   <input id="button" type="submit" />  
  5. </form>  

注意只有非空的表单才会使用正则验证,如果什么都不输入的话,pattern不会被使用,所以还需要required协助。但是这个代码弹出的提示是这样的:
使用HTML5的表单验证的简单示例

这样的提示文字只有猴子看得懂!所以我们还需要更友好的提示文字,使用setCustomValidity方法来定义。
运行

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>  
  2. <form>  
  3.   <input id="text" pattern="^1[3-9]\d{9}$" required />  
  4.   <input id="button" type="submit" />  
  5. </form>  
  6. <script>  
  7. text.oninput=function(){   
  8.   text.setCustomValidity("");   
  9. };   
  10. text.oninvalid=function(){   
  11.   text.setCustomValidity("请不要输入火星的手机号好吗?");   
  12. };   
  13. </script>  

使用HTML5的表单验证的简单示例

invalid事件会在表单submit事件之前触发,如果验证不通过的话就不会触发表单的submit。而提交时会先验证所有表单元素是值是否有效。除了提交外还可以手动调用checkValidity方法来执行验证。

上面的例子中我直接对控件设置固定的提示其实不太好,有时候可能需要更详细的提示信息,比如空的时候提示为空、太长的时候提示太长、非数字的时候提示非数字等。这些动作可以通过程序验证后动态地setCustomValidity来实现。

其实我觉得HTML5的这套API设计的很糟糕,虽然可以满足基本需求,但还真不太实用。

手机页面中表单提交用JavaScript验证信息 会弹出窗口,用户体验极差,所以再给出一个手机端用HTML5的属性来验证的示例:

XML/HTML Code复制内容到剪贴板
  1. <input id="name" name="name" placeholder="name" required="" tabindex="1" type="text">    
  2. <input id="email" name="email" placeholder="telephone" required="" tabindex="2" type="text" pattern="(^(\d{3,4}-)?\d{7,8})$|^(13|15|18|14)\d{9}$">    
  3. <input id="subject" name="subject" placeholder="example@domain.com" required="" tabindex="2" type="text">    
  4.  // 主要用了HTML的一下属性   
  5. // 1.placeholder 提供可描述输入字段预期值的提示信息。 该提示会在输入字段为空时显示,并会在字段获   
  6. //得焦点时消失   
  7. //2.required 属性规定必需在提交之前填写输入字段   
  8. //3.pattern  是正则表达式,  里面可以直接填写正则表达式  

使用HTML5的表单验证的简单示例

使用HTML5的表单验证的简单示例

HTML / CSS 相关文章推荐
CSS3美化表单控件全集
Jun 29 HTML / CSS
CSS3网格的三个新特性详解
Apr 04 HTML / CSS
一款纯css3实现的tab选项卡的实列教程
Dec 11 HTML / CSS
CSS3中currentColor关键字的妙用
Feb 27 HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
Aug 25 HTML / CSS
详解CSS3选择器:nth-child和:nth-of-type之间的差异
Sep 18 HTML / CSS
html5理解head_动力节点Java学院整理
Jul 13 HTML / CSS
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
Oct 08 HTML / CSS
小程序canvas中文字设置居中锚点
Apr 16 HTML / CSS
利用html+css实现菜单栏缓慢下拉效果的示例代码
Mar 30 HTML / CSS
css3新特性的应用示例分析
Mar 16 HTML / CSS
什么是css原子化,有什么用?
Apr 24 HTML / CSS
详解HTML5中的manifest缓存使用
Sep 09 #HTML / CSS
使用HTML5的Canvas绘制曲线的简单方法
Sep 08 #HTML / CSS
详解HTML5中ol标签的用法
Sep 08 #HTML / CSS
深入解析HTML5中的Blob对象的使用
Sep 08 #HTML / CSS
深入解析HTML5使用SVG图像时的viewBox属性用法
Sep 02 #HTML / CSS
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
Aug 31 #HTML / CSS
详解HTML5中的元素与元素
Aug 17 #HTML / CSS
You might like
供参考的 php 学习提高路线分享
2011/10/23 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
function foo的原型与prototype属性解惑
2010/11/19 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
js实现点击链接后窗口缩小并居中的方法
2015/03/02 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
详解html-webpack-plugin用法全解
2018/01/22 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
python uuid模块使用实例
2015/04/08 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
如何用Python来理一理红楼梦里的那些关系
2019/08/14 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
信息管理专业学生自荐信格式
2013/09/22 职场文书
毕业求职自荐信格式是什么
2013/11/19 职场文书
《猴子种树》教学反思
2014/02/14 职场文书
求职信怎么写
2014/05/23 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书