表单是页面上非常重要的一块内容,用户可输入的大部分内容都是在表单元素中完成的,与后台的交互大多数也是通过点击表单中的按钮。

一、新增的元素和属性

  1.新增属性:

    1.1 form属性:页面中的任何元素指定form属性,属性值为相应表单的id,该元素就属于指定表单了;只有Opera 10支持。

    1.2 placeholder属性:文本框处于未输入状态且未获取光标焦点时,模糊显示输入提示文字;Safari 4,chrome3,firefox4

    1.3 autofocus属性:打开页面时,有该属性的控件自动获得光标焦点;Safari 4,chrome3,firefox4

  2. 改良input元素种类:

    2.1 url类型:<input name="url1" type="url" value="http://www.micosoft.com">

    2.2 email类型: 只验证格式,并不检查email地址是否存在,提交时可以为空,除非加上了required属性;

    2.3 data类型:data类型的input元素以日历的形式方便用户输入;只有Opera 10支持

    还有很多类型不一一列举,大多数浏览器还不支持

 二、 表单验证

    2.1 自动验证:通过对元素使用属性的方法,可完成自动验证。例如:

    1)required属性:可应用在大多数输入元素上(除了隐藏元素、图片元素按钮上)

    2)pattern属性:对input元素使用pattern属性,属性值为正则表达式,

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

    3) min属性和max属性:为数值类型或日期类型的input元素专属,现在范围

    4)step属性:控制input元素中的值增加或者减少的步幅

   2.2 显示验证:form元素和input元素(包括select和textare)都具有一个checkValidity方法,可以显示的对表单内元素进行验证;以boolean形式返回验证效果,利用js可操作

  2.3 取消验证:有时候需要将表单临时提交下,但不想让表单中所有元素内容进行有效性验证(因为没有填完)。有两种方法取消表单验证

    1)利用input或submit元素的novalidate属性,可以关闭整个表单验证,该属性值为Boolean值

    2)利用input或submit元素的formnovalidate属性,利用input元素的该属性,=可以让表单验证对整个input元素失效;对submit按钮使用该属性,整个表单验证失效

三、 增强的页面元素

    3.1 figure元素和figcaption元素:figure一种元素的组合,带有可选标题,表示网页上一块独立内容,内容可以是图片、统计图、代码示例;figcaption表示figure的标题,可以在figure内其他从属元素的前面或者后面,仅允许一个figcaption。

    3.2 details元素:提供了一种替代JS的,将画面上局部区域进行展开或收缩的方法;目前无浏览器支持;

    3.3 meter元素:规定范围内的数量值。如:磁盘使用量,投票数占总投票人数的比例等。它有六个属性:

     value:元素中特地表示出来的实际值,默认值为0;min,max,low下限,high上限,optimum最佳值

四、文件API

  通过这个API,对于从Web页面上访问本地文件系统的相关处理变得十分简单;

  4.1 filelist对象与file对象:html5中file控件通过添加mulitiple属性,file控件内允许一次放置多个文件,filelist对象表示用户选择的文件列表;

  4.2 Blob对象:表示二进制原始数据,提供一个slice方法,通过该方法访问到字节内部的原始数据块。blod对象有两个属性,size属性表示一个Blob对象的字节长度,type属性表示Blob的MIME类型,如果是未知类型,则返回一个空字符串。

  4.3 FileReader接口:主要用来把文件读入内存,并且读取文件中的数据。提供一个异步API,使用该API可以在浏览器主线程中异步访问文件系统,读取文件中数据

    1)该接口有四个方法,其中3个用以读取文件(readAsBinaryString,readAsText,readAsDataUrl),另一个用来将读取过程中断(abort)

    2)FileReader接口的事件:用于捕获读取文件时的状态。onabort:中断时触发,onerror:出错时触发,onloadstart:开始时,onprogress:读取中,onload:读取完成时;onloadend:完成时,无论成功或失败

五、拖放API  

  H5中支持浏览器与其他应用程序之间的数据互相拖动,简化拖放方面的代码

  1. 实现拖放的步骤:(1)将想要拖放的对象元素的draggable属性设置为true;另外,img和a 元素默认允许拖放;(2)编写与拖放有关的事件处理代码

  现在支持拖放的MIME的类型有:text/plain:文本文字;text/html:HTML文字;text/xml:XML文字;text/uri-list:URL列表,每个URL为一列。

  2. DataTransfer对象:该对象的属性和方法使用的好,可以实现定制拖放图标,只支持特定拖放(copy/移动)

                      

  3. 设定拖放时的视觉效果:effectAllowed属性表示被拖动时允许的视觉效果,值none /copy /copyMove /link /linkmove /move /all /unintialize,一般在ondragstart事件中

              dropEffect属性表示实际拖放时的视觉效果,值none /copy /link /move,一般在ondragover事件中。后者必须在前者所表示的允许的视觉效果范围内

  4. 自定义拖放图标:DataTransfer对象有一个setDragImage方法,它有三个参数(img,拖放图标离鼠标指针的x轴方向的偏移量,y)

HTML5学习笔记五:html5表单的更多相关文章

  1. HTML5学习笔记<五>: HTML表单和PHP环境搭建

    HTML表单 1. 表单用于不同类型的用户输入 2. 常用的表单标签: 标签 说明 <form> 表单 <input> 输入域 <textarea> 文本域 < ...

  2. Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法

    Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法 昨天在开发的时候遇到个小问题,就是如何将Grid的内容与Form一起发送到服务器端.默认情况下,表单(F ...

  3. HTML5 学习笔记--------》HTML5概要与新增标签!

      一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电. ...

  4. angular学习笔记(二十)-表单验证

    本篇主要介绍angular中的表单验证: 表单验证主要有以下一些内容: 1. required指令: 相当于html5的required属性,验证不能为空 2. ng-maxlength属性: 验证内 ...

  5. HTML5学习笔记1 HTML5 新元素

    自1999年以后html4.0已经改变了很我,今天,在html4.01中的几个已经被废弃,这些元素在html5中已经被删除或重新定义. 为了更好地处理今天的互联网应用,html5添加了很多新元素及功能 ...

  6. knockoutJS学习笔记08:表单域绑定

    前面的绑定都是用在基本标签上,这章主要讲表单域标签的绑定. 一.value 绑定 绑定标签:input text.textarea. <p>用户名:<input type=" ...

  7. redux-form的学习笔记二--实现表单的同步验证

    (注:这篇博客参考自redux-form的官方英文文档)左转http://redux-form.com/6.5.0/examples/syncValidation/ 在这篇博客里,我将用redux-f ...

  8. HTML5学习笔记<三>: HTML5样式, 连接和表格

    HTML样式 1, 标签: <style>: 样式定义 <link>: 资源引用 2. 属性: rel="stylesheet": 外部样式表 type=& ...

  9. bootstrap学习笔记<五>(表单一)

    表单 bootstrap为表单提供三种样式:默认表单,水平表单,内联表单. <form class="form-horizontal" role="form&quo ...

随机推荐

  1. CSS样式覆盖规则

    有一下问题, 想让下面的border生效 ,#比. 优先级高, #navigator { height: 100%; width: 200; position: absolute; left: 0; ...

  2. Android SharedPreferences存图片,转码解码图片

    保存图片  首先创建ByteArrayStream对象,然后用BitmapFactroy把图片加载进来,然后compress压缩图片到流,  然后toByteArray()就行了 public voi ...

  3. html-关于IE浏览器兼容性的问题,还有浏览器一直加载的问题。

    今天9月11日,所谓兼容性问题就是,标签 写的不规范导致的,因为高版本的IE会自动补上没写的标签 document.write('<object classid="clsid:d27c ...

  4. javascript 用call来继承实例属性

    xxx.call(thisObj, arg1,...)的调用可以改变当前函数的执行环境为传入的thisObj对象.利用这一点可以实现继承————当前的对象获得XXX的属性和方法. 例子: functi ...

  5. ARM汇编指令的一些总结-转

    ARM汇编指令的一些总结ARM汇编指令很多,但是真正常用的不是很多,而且需要认真琢磨的又更少了.比较有用的是MOV B BL LDR STR还是通过具体汇编代码来学习吧.@ disable watch ...

  6. PAT (Advanced Level) 1043. Is It a Binary Search Tree (25)

    简单题.构造出二叉搜索树,然后check一下. #include<stdio.h> #include<algorithm> using namespace std; +; st ...

  7. Unity3d疑难问题解决

    1. 加载 c++ dll 不成功,报这个错: Failed to load 'Assets/Plugins/x86_64/myFile.dll' with error 'The operation ...

  8. IFeatureWorkspace OpenFeatureClass Example(转)

    网络来源:http://changqingnew.blog.163.com/blog/static/1075233820103383633639/ //IFeatureWorkspace OpenFe ...

  9. Java中Calendar的用法

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Times } span.s1 { font: 13.0px Courier; backgro ...

  10. 从url中提取参数名和参数值(转)

    在已知参数名的情况下,获取参数值,使用正则表达式能很容易做到.js的实现方法如下: function getValue(url, name) { var reg = new RegExp('(\\?| ...