`
bsr1983
  • 浏览: 1117528 次
  • 性别: 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 新...

    visual c#通用范例开发金典源程序第7章

    6. 其他可能的主题:除此之外,第七章还可能包含Windows Forms或WPF界面设计、事件驱动编程、委托和Lambda表达式、反射、泛型、集合类的使用、XML处理、网络编程等。 通过阅读和实践《Visual C#通用范例开发金典》...

    asp.net项目开发全程实录第1章

    在本章中,我们将深入探讨ASP.NET项目开发的全过程,主要关注的是第一章的内容。ASP.NET是一种强大的Web应用程序框架,由Microsoft开发,用于构建动态、数据驱动的网站和应用程序。本章将为初学者提供一个坚实的起点...

    ASP.NET网络应用系统开发案例精解第四章

    在本章"ASP.NET网络应用系统开发案例精解第四章"中,我们将深入探讨如何使用ASP.NET技术构建一个鲜花配送系统。这个系统旨在提供在线鲜花预订、支付、配送等服务,是电子商务应用的一个典型示例。我们将从以下几个...

    accp 5.0 S2 .net 第四章上机

    第四章的上机部分,通常会涉及到实际操作和实践,让学生将理论知识应用到实际编程中。 在第四章中,可能涵盖以下关键知识点: 1. **C#基础语法**:包括变量、数据类型、运算符、流程控制语句(如if-else、for、...

    ASP.NET开发实战1200例(第II卷)第七章 part1.rar

    《ASP.NET开发实战1200例(第II卷)第七章 part1.rar》这个压缩包文件包含了ASP.NET开发的实战案例,旨在帮助开发者深入理解和掌握ASP.NET技术。该资源共分为三部分,包括代码和视频教程,为学习者提供了丰富的实践...

    c#编程宝典 源代码 13-24章

    7. **多线程**(第22章):多线程允许程序同时执行多个任务,提升程序效率。C#中的Thread类和ThreadPool,以及异步编程模型如async/await,都是重要的学习内容。 8. **图形用户界面设计**(第23章):Windows Forms...

    ASP.NET开发实战1200例(第II卷)第七章 part2.rar

    本篇将围绕"ASP.NET开发实战1200例(第II卷)第七章 part2"中的实例进行深入解析,帮助读者掌握更多ASP.NET的实用技能。 这部分内容共包含10个案例,具体为217、222、219、237、218、241、223、225、212、216。每个...

    C#范例宝典第20章代码.rar

    8. 自定义控件与用户界面设计:C#支持Windows Forms和WPF两种UI框架,这章可能包括自定义控件的创建、布局管理、事件处理等方面,帮助读者构建更复杂的用户界面。 9. ADO.NET数据库访问:C#通过ADO.NET库提供与...

    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...

Global site tag (gtag.js) - Google Analytics