`
bsr1983
  • 浏览: 1101140 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第7 章 FormsAPI

 
阅读更多

 

7.1 HTML5 Forms概述

7.1.1 HTML FormsXForms

       XForms是一个以XML为核心、功能强大却略显复杂的标准,它用于规范客户端表单的行为,而专门的W3C工作组研究这些行为已近十年。XForms充分利用了XML Schema,制定了针对验证和格式化的精确准则,不过,很遗憾,在没有安装插件的情况下,主流浏览器均不支持XForms

7.1.2 功能性表单

       提示

       一定要领会HTML5 Forms的核心设计理念;规范的核心是功能性动作和语义,而非外观和显示效果。

7.1.3 HTML5 Forms的浏览器支持情况

7.1.4 输入型控件目录

7.2 使用HTML5 Forms API

7.2.1 新的表单特性和函数

       1.placeholder

       当用户还没有输入值的时候,输入型控件可以通过placeholder特性向用户显示描述性说明或提示信息。

       使用placeholder特性只需将说明性文字作为该特性值即可。除了普通的文本输入框外,emailnumberurl等其他类型的输入框也都支持placeholder特性。

       2.autocomplete

       浏览器通过autocomplete特性能够直销是否应该保存输入值一杯将来使用。例如不保存的代码如下:

       <input type=”text” name=”creditcard”  autocomplete=”off”>

autocomplete特性应该迎来保护 敏感用户数据,避免本地浏览器对它们进行不安全地存储。

7-4 输入型控件的autocomplate行为

类型

作用

on

该字段无需受到保护,值可以被保存和恢复

off

该字段需要受到保护,之不可以被保存

unspecified

包含<form>的默认设置。如果没有被包含在表单中或没有指定值,则行为与设置on时相同

       3.autofocus

       页面载入时,开发人员通过autofocus特性可以指定某个表单元素获得输入焦点。每个页面上只允许出现一个auofocus特性。如果设置了多个autofocus特性,则相当于未指定此行为。

       提示

       如果页面内容的呈现依赖于门户页面或者共享内容页面,那么很难做到每个页面只有一个autofocus控件。所以,如果你无法完全控制整个页面,就不要指望给予autofocus特性获取焦点。

       4.list特性和datalist元素

       通过组合使用list特性和datalist元素,开发人员能够为某个输入型控件构造一张选值列表,其使用方法如下。

(1) 创建id特性值唯一的datalist元素,该元素可插入文档的任意位置。

(2) 添加若干option元素作为datalist元素的子元素,它们表示某控件推荐选值的全集。

(3) input元素的list特性值设为datalist元素的id值,可以实现二者的关联。

5.minmax

通过设置minmax特性,可以讲range输入框的数值输入范围限定在最低值和最高值之间。这两个特性既可以只设置一个,也可以两个都设置,还可以都不设置,输入型控件会根据设置的参数对峙的范围做出响应调整。

6.step

对于输入型控件,设置其step特性能够制定输入值递增或递减的粒度。

step特性的默认值取决于控件的类型。对于range控件,step默认值为1。为了配合step特性,HTML5引入了stepUpstepDown两个函数对其进行控制。

7.valueAsNumber函数

valueAsNumber函数的作用是完成控件值类型在文本与数值之间的相互转换。它既是getter函数又是setter函数。作为getter函数调用时,valueAsNumber函数将文本类型转换成number类型,以方便计算。如果转换失败,则会返回NaN值。

8.required

一旦为某输入型控件设置了required特性,那么此项必填,否则无法提交表单。

如果此文本框中没有值,则无论以编程方式还是用户操作都无法提交表单。

7.2.2 表单验证

       在支持HTML5表单验证的浏览器中,可以通过表单控件来访问ValidityState对象:

       var valCheck=document.myForm.myInput.validity

       这行代码获取了名为myInput的表单元素的ValidityState对象。对象包含了对所有八种验证状态的引用,以及最终验证结果。

       调用方式如下:

       valCheck.valid

       执行完毕,我们会得到一个布尔值,它表示表单控件是否已通过了所有的验证约束条件。可以把valid特性看做最终验证结果:如果所有八个约束条件都通过了,valid特性就是true。否则,只要有一项约束没通过,valid标志都是false

提示

       ValidityState对象是一个实时更新的对象。获得某表单元素的ValidityState对象后,当表单元素内容发生变化时,你可以通过它来获得更新后的检测结果。

       willValidate特性

       willValidate特性仅用来说明某表单控件是否将进行验证。如果required特性、pattern特性等设置在了控件上,那么通过willValidate特性,你可以得知验证将会执行。

       checkValidity函数

       即使没有用户输入,也可以使用checkValidity函数对表单进行验证。一般情况下,表单验证发生在用户或脚本提交表单是,checkValidity函数却能在任何时间对表单进行验证。

       提示

       在表单控件上调用checkValidity函数不仅会进行验证,还会触发所有结果事件和UI触发器,就好像表单已经提交了一样。

       validationMessage特性

       validationMessage特性允许你通过编程方式查询本地化错误信息,浏览器基于当前验证状态显示的也是这些信息。

7.2.3 验证反馈

       只要发生表单验证(不管是在提交表单时,还是直接调用checkValidity函数),所有未通过验证的表单都会节后到一个invalid事件。invalid事件可以被忽略、观察、甚至取消。

       表单本身可以通过代码方式设置noValidate特性。这样一来,所有的验证逻辑都会被放弃,只会单纯地提交表单。

关闭验证更好的办法是在如表单提交按钮(type特性值为submit)这样的控件上设置formNoValidate特性。

7.3 构建HTML5 Froms应用

 

分享到:
评论

相关推荐

    HTML5高级程序设计第二版

    第1章 HTML5概述 第2章 Canvas API 第3章 音频和视频 第4章 GELOLCATION API ...第7章 Forms API 第8章 Web Workers API 第9章 Web Storage API 第10章 构建离线Web应用 第11章 HTML5未来展望

    HTML5高级程序设计

    第7章 forms api 139 7.1 html5 forms概述 139 7.1.1 html forms与xforms 139 7.1.2 功能性表单 140 7.1.3 html5 forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用html5 forms api 144 7.2.1 新...

    完整版《HTML5高级程序设计》2

    第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新的表单...

    完整版《HTML5高级程序设计》4

    第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新的表单...

    完整版《HTML5高级程序设计》5

    第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新的表单...

    完整版《HTML5高级程序设计》3

    第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新的表单...

    HTML5高级程序设计.part5

    第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新...

    HTML5高级程序设计.part4

    第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新...

    HTML5高级程序设计.part1

    第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新...

    HTML5高级程序设计.part2

    第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新...

    HTML5高级程序设计.part3

    第7章 Forms API 139 7.1 HTML5 Forms概述 139 7.1.1 HTML Forms与XForms 139 7.1.2 功能性表单 140 7.1.3 HTML5 Forms的浏览器支持情况 140 7.1.4 输入型控件目录 141 7.2 使用HTML5 Forms API 144 7.2.1 新...

    HTML5程序设计(第2版).[荷]Peter Lubbers(带详细书签).pdf

    第7章 WebSockets API 138 7.1 WebSockets概述 138 7.1.1 实时和HTTP 138 7.1.2 解读WebSockets 140 7.2 编写简单的Echo WebSocket服务器 145 7.3 使用HTML5 WebSockets API 153 7.3.1 浏览器支持情况检测 153...

    GDI+图像程序设计(PDF & 源码 -电子工业出版社)

    第7章 图像处理 7.1 光栅图像和矢量图像 7.2 使用图像 7.3 操作图像 7.4 在GDI+ 中播放动画 7.5 使用位图 7.6 使用图标 7.7 扭曲图像 7.8 绘制透明的图形对象 7.9 查看多个图像 7.10 使用图片框查看图像 ...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

    第7章 自定义数据类型 293 7.1 C++中的结构 293 7.1.1 结构的概念 294 7.1.2 定义结构 294 7.1.3 初始化结构 294 7.1.4 访问结构的成员 295 7.1.5 伴随结构的智能感知帮助 298 7.1.6 RECT结构 299 7.1.7 ...

    Visual C++ 2005入门经典--源代码及课后练习答案

    第7章 自定义数据类型 295 7.1 C++中的结构 295 7.1.1 结构的概念 296 7.1.2 定义结构 296 7.1.3 初始化结构 296 7.1.4 访问结构的成员 297 7.1.5 伴随结构的智能帮助 300 7.1.6 RECT结构 301 7.1.7...

    Visual C++ 2005入门经典.part08.rar (整理并添加所有书签)

    第7章 自定义数据类型 7.1 C++中的结构 7.1.1 结构的概念 7.1.2 定义结构 7.1.3 初始化结构 7.1.4 访问结构的成员 7.1.5 伴随结构的智能帮助 7.1.6 RECT结构 7.1.7 使用指针处理结构 7.2 数据类型、对象、类和实例 ...

    Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf

    第7章 测试驱动的开发 287 7.1 测试的内容和方式 288 7.2 visual studio中的tdd工具 290 7.3 单元测试过程 291 7.3.1 创建测试程序 291 7.3.2 运行测试程序 294 7.3.3 测试数据访问代码 295 7.3.4 ...

    Visual C++ 2005入门经典.part04.rar (整理并添加所有书签)

    第7章 自定义数据类型 7.1 C++中的结构 7.1.1 结构的概念 7.1.2 定义结构 7.1.3 初始化结构 7.1.4 访问结构的成员 7.1.5 伴随结构的智能帮助 7.1.6 RECT结构 7.1.7 使用指针处理结构 7.2 数据类型、对象、类和实例 ...

    Visual C++ 2005入门经典.part07.rar (整理并添加所有书签)

    第7章 自定义数据类型 7.1 C++中的结构 7.1.1 结构的概念 7.1.2 定义结构 7.1.3 初始化结构 7.1.4 访问结构的成员 7.1.5 伴随结构的智能帮助 7.1.6 RECT结构 7.1.7 使用指针处理结构 7.2 数据类型、对象、类和实例 ...

    Visual C++ 2005入门经典.part09.rar (整理并添加所有书签)

    第7章 自定义数据类型 7.1 C++中的结构 7.1.1 结构的概念 7.1.2 定义结构 7.1.3 初始化结构 7.1.4 访问结构的成员 7.1.5 伴随结构的智能帮助 7.1.6 RECT结构 7.1.7 使用指针处理结构 7.2 数据类型、对象、类和实例 ...

Global site tag (gtag.js) - Google Analytics