当前位置: 首页 > 编程日记 > 正文

HTML5学习之二:HTML5中的表单2

(本内容部分节选自《HTML 5从入门到精通》)

对表单的验证

————————————————————————————————————————————————————————

•1、required属性

required属性主要目的是确保表单控件中的值已填写。在提交时,如果元素中内容为空白,则不允许提交,同时在浏览器中显示信息提示文字,提示用户这个元素中必须输入内容。

•2、pattern属性

pattern属性主要目的是根据表单控件上设置的格式规则验证输入是否为有效格式。对input元素使用pattern属性,并且将属性值设为某个格式的正则表达式,在提交时会检查其内容是否符合给定格式。当输入的内容不符合给定格式时,则不允许提交,同时在浏览器中显示信息提示文字,提示输入的内容必须符合给定格式。

例如下面所示,要求输入的内容必须为一个数字与三个大写字母。

<input pattern="[0-9][A-Z]{3}" name="mr" placeholder="输入内容:一个数字与三个大写字母。" />

•3、min属性与max属性

min与max这两个属性是数值类型或日期类型的input元素的专用属性,它们限制了在input元素中输入的数值与日期的范围。

•4、step属性

step属性控制input元素中的值增加或减少时的增量。例如当你想让用户输入的值在0与100之间,但必须是5的倍数时,你可以指定step为5.

1、checkValidity显式验证法:

form元素与input元素(包括select元素与textarea元素)都具有一个checkValidity方法 。调用该方法,可以显式地对表单内所有元素内容或单个元素内容进行有效性验证。如果你想覆盖浏览器默认的验证和反馈过程,可用之。checkValidity方法以boolean的形式返回验证结果。另外还要提到的是,在HTML5中,form元素与input元素都还存在一个validitystate 属性,该属性返回一个validitystate 对象。该对象具有很多属性,但最简单、最重要的属性为valid属性,它表示了表单内所有元素内容是否有效或单个input元素内容是否有效。

这样的效果:

image   image(IE上的效果)

这样的用法:

  1 <!DOCTYPE html> 
  2 <html> 
  3 <head> 
  4 <meta charset="utf-8"> 
  5 <title>使用checkValidity()方法显式验证表单</title> 
  6 <script type="text/javascript"> 
  7 function CheckForm(frm){  
  8 	if(frm.myEmail.checkValidity()){        /* 显式验证邮件 */  
  9 		alert("邮件格式正确!");  
 10 	}else{  
 11 		alert("邮件格式错误!");  
 12 	}  
 13 }  
 14 </script> 
 15 </head> 
 16 <body> 
 17 <div> 
 18   <form action="" method="post"> 
 19 	邮件:  
 20 	<input type="email" name="myEmail" id="myEmail" value="yxw740@163.com" /> 
 21 	<br /> 
 22 	<input type="submit" value="提交" onclick="return CheckForm(this.form)" /> 
 23   </form> 
 24 </div> 
 25 </body> 
 26 </html>
显式验证

2、 setCustomValidity方法自定义错误信息

自定义错误提示信息的方法。

当默认的提示错误满足不了需求时,可以通过该方法自定义错误提示。当通过此方法自定义错误提示信息时,元素的validationMessage属性值会更改为定义的错误提示信息,同时ValidityState对象的customError属性值变成true。下面通过示例了解其使用方法。

效果:image

  1 <!DOCTYPE html> 
  2 <html> 
  3 <head> 
  4 <meta charset="utf-8"> 
  5 <title>自定义错误提示信息</title> 
  6 <script type="text/javascript"> 
  7 function CheckForm(frm){  
  8     var name=frm.name;  
  9     if(name.value==""){  
 10         name.setCustomValidity("写名字再走,喂!");     /* 自定义错误提示 */  
 11     }else{  
 12         name.setCustomValidity("");                     /* 取消自定义错误提示 */  
 13     }  
 14 }  
 15 </script> 
 16 </head> 
 17 <body> 
 18 <div> 
 19   <form action="" method="post"> 
 20     姓名:  
 21     <input id="name" name="name" placeholder="First and Last Name" required /> 
 22     <input type="submit" value="提交" onClick="CheckForm(this.form)" /> 
 23   </form> 
 24 </div> 
 25 </body> 
 26 </html>
自定义验证

ps:如果把邮件验证和姓名验证放在一起,一定是先验证邮件,再验证姓名,你说好玩不好玩

3、避免验证

如果不想浏览器验证你的表单,咋办?

用form元素的novalidate属性;可以关闭整个表单验证。

input元素或者submit元素的formnovalidate属性,可以对单个input元素失效。

另:submit的formnovalidate和form的novalidate等价

增加的页面元素

————————————————————————————————————————————————————————

figure 元素

用来表示网页上一块独立的内容,将其从网页上移除后不会对网页上的其他内容产生任何影响。figcaption元素表示figure 元素的标题。它从属于figure 元素,所以其必须书写在figure 元素内部,可以书写在figure 元素内的其他从属元素的前面或后面。一个figure 元素内最多只允许放置一个figcaption元素,但允许放置多个其他元素。

eg效果图:两个figure,带标题的

image

  1 <title>新增元素示例</title>
  2 </head>
  3 	<figure>
  4     	<figcaption>故事</figcaption>
  5     <br/>
  6     有很多时候,过不去的,是活着的人用对过往的缅怀来逃避没有未来的认知,<br/>
  7     第一年,会想着若他还在,这岁月将是怎样的不同;第二年习惯了他的不在,<br/>
  8     但难免伤怀少了他的滋味;第三年,对风花雪月的怀想,已不存在他的位置,<br/>
  9     他不在,已成定论。
 10     </figure>
 11     <hr color="#38ABD4" size="+1">
 12 <body>
 13 	<figure>
 14     	<img src="images/1.jpg" width="400"><br/>
 15         <figcaption>妖应封光</figcaption>
 16     </figure>
 17 </body>
figure

details元素

提供了一种替代JavaScrip的,它主要是提供了一个展开/收缩区域。例如如下的应用代码:

(目前只有 Chrome 和 Safari 6 支持 <details> 标签。)

<details><summary>百度百科</summary><p>百度百科,没啥好介绍的....</p>
</details>


Details元素具有一个属性“open”,使用<details open> 语句对details 添加该属性,添加该属性后在画面打开时details元素所表示的局部区域则会处于展开状态。

说明:details元素内并不限于放置文字,也可以在其内部放置表单、插件或对于一个统计图提供的详细数据表格。

mark元素

表示页面中需要突出显示或高亮显示的,对于当前用户具有参考作用的一段文字。它通常使用于引用原文的时候,目的是引起读者的注意。mark元素的作用相当于使用一支荧光笔在打印的纸张上标出一些文字。

说明:mark元素最主要的目的是吸引当前用户的注意,因为标示出来的文字与用户的当前操作有关,通常该元素对于当前用户具有很好的帮助作用。

能够体现mark元素作用的最好例子是对网页全文检索某个关键词时显示的检索结果,现在许多检索引擎用其他方法实现了mark元素所要达到的功能。

mark元素的另一个主要作用是在引用原文的时候,为了某种特殊目的而把原文作者没有特别重点标示的内容给标示出来。

mark元素与em、strong元素的区别:

开发者可能已经习惯于用em元素或strong元素来突出显示文字,但要注意mark元素的作用与这两个元素的作用是有区别的,不能混同使用。Mark元素的标示目的与原文作者无关,或者说它不是原文作者用来标示文字的,而是在后面引用的时候添加上去的,它的目的是吸引当前用户的注意力,提供给用户作参考,希望能够对用户有帮助。而strong是原文作者用来强调一段文字的重要性,例如警告信息、错误信息等,em元素是作者为了突出文章重点而使用的。

用法示例:

<mark>你要mark的内容</mark><summary><mark>明日科技</mark></summary>
<p><mark>明日科技</mark>,成立于1998年....</p>

Progress元素

HTML5标准草案中新增的元素之一。它表示一个任务的完成进度,这进度可以是不确定的,只是表示进度正在进行,但是不清楚还有多少工作量没有完成,也可以用0到某个最大数字(例如100)之间的数字来表示准确的进度完成情况(例如进度百分比)

该元素主要有两个属性:value属性表示已经完成了多少工作量,max属性表示总共有多少工作量。工作量的单位是随意的,不用指定。

注意:value和max属性的值必须大于0,value的值小于或等于max属性的值。

转载于:https://www.cnblogs.com/puluotiya/p/4855379.html

相关文章:

Redis源码解析——有序整数集

有序整数集是Redis源码中一个以大尾&#xff08;big endian&#xff09;形式存储&#xff0c;由小到大排列且无重复的整型集合。它存储的类型包括16位、32位和64位的整型数。在介绍这个库的实现前&#xff0c;我们还需要先熟悉下大小尾内存存储机制。&#xff08;转载请指明出于…

GitHub标星1.2w+,Chrome最天秀的插件都在这里

作者 | Rocky0429来源 | Python空间&#xff08;ID: Devtogether&#xff09;大家好&#xff0c;我是 Rocky0429&#xff0c;一个沉迷 Chrome 不能自拔的蒟蒻...作为一个在远古时代用过什么 IE、360、猎豹等浏览器的资深器哥&#xff0c;当我第一次了解 Chrome 的时候&#xff…

基础篇 第四节 项目进度计划编辑 之 任务关联性设定

1.任务关联性的类型 ◎完成 —— 开始 FS ◎开始 —— 开始 SS ◎开始 —— 完成 SF 完成 —— 完成 FF 2.设定任务关联性 三种方法&#xff1a; ◎在条形图中直接拖拽 ◎在“前置任务”列中编辑 ◎在“任务信息”中的“前置任务”选项卡中编辑 3.设定“延隔时间” 延隔时间小于…

开坑,写点Polymer 1.0 教程第3篇——组件注册与创建

之前一篇算是带大家大致领略了一下Polymer的风采。这篇我们稍微深入一丢丢&#xff0c;讲下组件的注册和创建。 创建自定义组件的几种方式 这里我们使用Polymer函数注册了一个自定义组件"my-element" // register an element Polymer({is: my-element,created: funct…

Redis源码解析——Zipmap

本文介绍的是Redis中Zipmap的原理和实现。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 基础结构 Zipmap是为了实现保存Pair(String,String)数据的结构&#xff0c;该结构包含一个头信息、一系列字符串对&#xff08;之后把一个“字符串对”称为一个“元素…

IIS7入门之旅:(3)CGI application和FastCGI application的区别

前言&#xff1a; 一如既往地&#xff0c;IIS支持通过提供pluggable module来提供对第3方script的支持,例如php等。在IIS7中&#xff0c;对于CGI的支持有了一个新的变化&#xff0c;就是同时提供了2种CGI支持模块&#xff0c;分别为&#xff1a;CGIModule (cgi.dll)和FastCGIMo…

抗击疫情!阿里云为加速新药疫苗研发提供免费AI算力

1月29日&#xff0c;阿里云正式宣布&#xff1a;疫情期间&#xff0c;向全球公共科研机构免费开放一切AI算力&#xff0c;以加速本次新型肺炎新药和疫苗研发。 目前&#xff0c;中国疾控中心已成功分离病毒&#xff0c;疫苗研发和药物筛选仍在争分夺秒地进行。新药和疫苗研发期…

SpriteBuilder中如何平均拉伸精灵帧动画的距离

首先要在Timeline中选中所有的精灵帧&#xff0c;可以通过如下2种的任意一种办法达成&#xff1a; 1按下Shift键的同时鼠标单击它们 2鼠标在Timeline空白区拖拽直到拉出的矩形包围住所有精灵帧方块后放开鼠标。 你可以通过查看Timeline中精灵帧方块上是否有阴影来辨识是否选中…

C++拾趣——类构造函数的隐式转换

之前看过一些批判C的文章&#xff0c;大致意思是它包含了太多的“奇技淫巧”&#xff0c;并不是一门好的语言。我对这个“奇技淫巧”的描述颇感兴趣&#xff0c;因为按照批判者的说法&#xff0c;C的一些特性恰巧可以让一些炫耀技术的同学有了炫耀的资本——毕竟路人皆知的东西…

数十名工程师作战5天,阿里达摩院连夜研发智能疫情机器人

作者 | Just出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;新型肺炎疫情防控战在各大互联网科技公司拉响&#xff0c;阿里、百度等公司陆续对外提供相应技术和产品。当前&#xff0c;疫情当前防控一线人员紧缺&#xff0c;多地政务热线迎来大波问询市民&#xff0c;…

路由器互联端口处于不同网段的路由方法和原理

如下图&#xff1a;两台cisco路由器相连接的两个端口不在同一个网络&#xff0c;如何实现两台路由器的互联&#xff1f;初看似乎绝对不可能&#xff0c;但是这是可行的&#xff0c;而且我已经把这个变成了现实。这里讲述配置的方法&#xff0c;以及解释原理。这个就要讲到路由原…

上网行为管理产品选型简单考量

信息化浪潮汹涌向前&#xff0c;人们的生活、工作、学习越来越离不开IT&#xff0c;离不开网络。 对于很多组织来讲&#xff0c;网络就意味着效率、甚至生产力&#xff0c;协同办公、决策、科研、资金划拨等等都对网络有了前所未有的依赖。网络应用日益复杂、多变、动态特征发展…

码农技术炒股之路——配置管理器、日志管理器

配置管理器和日志管理器是项目中最为独立的模块。我们可以很方便将其剥离出来供其他Python工程使用。文件的重点将是介绍Python单例和logging模块的使用。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 配置管理器 在《码农技术炒股之路——架构和设计》中我…

“数学不好,干啥都不行!”资深程序员:别再瞎努力了!

之前很多程序员读者向我们反馈&#xff1a;1&#xff09;做算法优化时&#xff0c;只能现搬书里的算法&#xff0c;遇到不一样的问题&#xff0c;就不会了。2&#xff09;面试一旦涉及到算法和数据结构&#xff0c;如果数学不行&#xff0c;面试基本就凉凉了。3&#xff09;算法…

受限列表 队列与栈

2019独角兽企业重金招聘Python工程师标准>>> 队列与栈为受限列表&#xff0c;队列为先入先出型列表&#xff0c;而栈为先入后出型列表&#xff0c;有关列表的实现可以查看 http://my.oschina.net/u/2011113/blog/514713 。 结构图为 Queue实现了IQueue接口&#xff…

码农技术炒股之路——数据库管理器、正则表达式管理器

我选用的数据库是Mysql。选用它是因为其可以满足我的需求&#xff0c;而且资料多。因为作为第三方工具&#xff0c;难免有一些配置问题。所以本文也会讲解一些和Mysql配置及开发相关的问题。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 数据库管理器 Mysq…

Overview of ISA and TMG Networking and ISA Networking Case Study (Part 1)

老方说&#xff1a;此篇文章摘自ISASERVER.ORG网站&#xff0c;出自Thomas Shinder达人之手。严重建议ISA爱好者看看。Published: Dec 16, 2008 Updated: Jan 21, 2009 Author: Thomas Shinder What ISA/TMG firewall Networks are about and how the firewall uses these ne…

阿里云免费开放一切AI算力,加速新型冠状病毒新药和疫苗研发

近日&#xff0c;阿里云宣布&#xff0c;为了帮助加速新药和疫苗研发&#xff0c;将向全球公共科研机构免费开放一切AI算力。目前&#xff0c;中国疾控中心已成功分离病毒&#xff0c;疫苗研发和药物筛选仍在争分夺秒地进行。新药和疫苗研发期间&#xff0c;需要进行大量的数据…

ASP.net(C#)批量上传图片(完整版)

来自&#xff1a;http://blog.itpub.net/9869521/viewspace-667955/ 这篇关于ASP.Net批量上传图片的文章写得非常好&#xff0c;偶尔在网上看到想转载到这里&#xff0c;却费劲了周折。为了更新这篇文章&#xff0c;我用了近半个小时&#xff0c;网上的转载都残缺不全&#xff…

码农技术炒股之路——任务管理器

系统任务和普通任务都是通过任务管理器调度的。它们的区别是&#xff1a;系统任务在程序运行后即不会被修改&#xff0c;而普通任务则会被修改。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 为什么要有这样的设计&#xff1f;因为我希望它是一个可以不用停…

面对新型肺炎疫情,AI能做什么?

作者 | 马超出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;根据最新的新型冠状病毒疫情通报&#xff0c;截至1月30日24时&#xff0c;国家卫生健康委公布确诊病例9692例&#xff0c;重症病例1527例&#xff0c;累计死亡病例213例&#xff0c;另有疑似病例15238例。为…

大家帮忙.谢谢!..(急急急急急)

大家帮忙.谢谢!..(急急急急急) Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiDB/html/delphi_20061218224617231.htmlprocedure TForm1.Button4Click(Sender: TObject); var P : pstring; i, j : integer; begin GetMem(p, sizeof(stri…

HDU4866 Shooting (要持久段树)

意甲冠军&#xff1a; 给你一些并行x行轴。总是询问坐标x的顶部之前&#xff0c;k一个段高度&#xff0c;。标题是必须在线。思路&#xff1a; 首先要会可持久化线段树(又称主席树和函数式线段树)。不会的能够去做下POJ 2104。 把全部线段高度离散化&#xff0c;作为结点建线段…

C++过去的这一年

作者 | Bartek译者 | 苏本如&#xff0c;责编 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;【导读】本文旨在让我们回顾 C 2019年里的变化和发展&#xff01;我们将重点关注本年度里 C 上发生的重大事件&#xff0c;标准的发展&#xff0c;工具的变化等等…

码农技术炒股之路——抓取股票基本信息、实时交易信息、主力动向信息

从本节开始&#xff0c;我们开始介绍各个抓取和备份业务。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 因为我们数据库很多&#xff0c;数据库中表也很多&#xff0c;所以我们需要一个自动检测并创建数据库和表的功能。在《码农技术炒股之路——数据库管理…

TemplateBuilder

http://msdn.microsoft.com/zh-cn/vstudio/system.web.ui.templatebuilder_members(VS.85).aspx TemplateBuilder 成员TemplateBuilder 成员支持在生成模板及其包含的子控件时使用的页分析器。 下表列出了由 TemplateBuilder 类型公开的成员。 公共构造函数 名称 说明 Templat…

【iOS UI】iOS 9 GUI 资源分享

分享的内容包括一个【DesignCode-iOS-9-GUI】Sketch 文件&#xff0c; 和苹果官方释出的【SF-UI、SF-Compact】两种字体的安装包。 以上内容是正版、免费的 <a href "https://itunes.apple.com/cn/app/sketch-3/id852320343?mt12">Sketch</a> 是收费软…

反向R?削弱显著特征为细粒度分类带来提升 | AAAI 2020

作者 | VincentLee来源 | 晓飞的算法工程笔记导读&#xff1a;论文提出了类似于dropout作用的diversification block&#xff0c;通过抑制特征图的高响应区域来反向提高模型的特征提取能力&#xff0c;在损失函数方面&#xff0c;提出专注于top-k类别的gradient-boosting loss来…

C#初学——doWhile

继续上面的学习&#xff0c;这次的是流程控制&#xff0c;用dowhile&#xff0c;代码如下&#xff0c;还是用语言选择来作为事例的。using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication9 { class Program { static void Main(s…