HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注

2016-02-19 11:20 4 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - Web开发 】

在HTML5增强的元素中,最值得关注的就是表单元素。在HTML5中,表单已经做了重大的修整,一些以前需要通过JavaScript编码实现的功能现在无需编码就可轻松实现。在开始讨论之前,需要注意一点:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

在HTML5中,表单控件是可以处于其所属的一个或多个表单的外部的。所以,表单控件像fieldset,label,input这些都加入了form属性,用于标识表单控件所属的表单。

在HTML5中

1. form元素自身增加了两个新的属性:autocomplete和novalidate。autocomplete属性用于启用下拉建议列表功能,novalidate属性用于关闭表单验证功能,这在测试时会很有用。

2. fieldset元素增加了三个新属性:disable、name和form。disable属性用于禁用fieldset,name属性用于设置fieldset的名称,form属性的值是fieldset所属的一个或多个表单的ID,这个前面也说了,当fieldset被置于表单的外部时,你必须设置该fieldset标签的form属性,这样fieldset就可以正确地与一个或多个表单关联起来。

3. label元素除for属性外,只增加了form属性。这里值得一提的是for属性,我以前还真没注意过。for属性用于指定label附属的表单控件,这样点击这个label时会让附属的表单控件获得焦点,比如:

代码如下:

form action="demo_form.asp" id="form1"
label for="name"Click Me/labelinput id="name" type="text"/input
input type="submit" value="Submit" /
/form

点击"Click Me",则后面的输入框会获得焦点。

4. input元素引入了一些新的类型与属性,增强了表单的可用性。这些新的输入类型,用于对数据进行组织和归类,非常有用,遗憾的是并没有哪一个浏览器能很好的支持所有的这些类型。
除了原来button,text,submit,checkbox,radio,select,password的类型,HTML5加入了下列新的input类型:

颜色:color
各种日期:date, datetime, datetime-local, month, week, time
电子邮件:email
数字:number
范围:range
搜索:search
电话:tel
URL类型:url

可以运行下面的例子来查看不同浏览器的支持情况:

代码如下:

form action="demo_form.asp"
Select your favorite color: input type="color" name="favcolor" /
Birthday: input type="date" name="bday" /
Birthday (date and time): input type="datetime" name="bdaytime" /
Birthday (date and time): input type="datetime-local" name="bdaytime" /
Birthday (month and year): input type="month" name="bdaymonth" /
Select a time: input type="time" name="usr_time" /
Select a week: input type="week" name="week_year" /
Quantity (between 1 and 5): input type="number" name="quantity" min="1" max="5" /
Quantity(between 1 and 10): input type="range" name="points" min="1" max="10" /
Search Google: input type="search" name="googlesearch" /
Telephone: input type="tel" name="usrtel" /
Add your homepage: input type="url" name="homepage" /
E-mail: input type="email" name="usremail" /
input src="submitbutton.png" type="submit" /
/form

下面这些是新增加的input属性:
autocomplete:自动显示以前输入过的信息,取值"on"或者"off"。适用于text, search, url, tel, email, password, datepickers, range, and color类型。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

autofocus:页面加载完成后自动获取到焦点。
form:指定input所属的form,可以是多个。
formaction:指定form提交后处理这个input的页面(URL)或文件。  
formenctype:指定form提交后数据如何编码。
formmethod:指定发送form数据的HTTP方法,会覆盖相应form的HTTP方法。
formnovalidate:提交前不检查数据的有效性。
formtarget:指定在那个地方显示form提交后response的内容。
height, width:输入框长和宽,只适用于image类型。 
max,min:输入值的最大值和最小值。适用于有意义的number,range, 日期类型。  
multiple:是否允许输入多个值,适用于email和file类型。
pattern:指定验证输入值的正则表达式,适用于text,search,url,tel,email,password。
placeholder:输入前的提示信息,适用于text,search,url,tel,email,password。
required:是否是必填项,如果不填必填项,则表单不能提交,适用于text, search, url, tel, email, password, date pickers, number, checkbox, radio, 和file类型。
step:输入自动增长时的步长值,适用于number, range, date, datetime, datetime-local, month, time和week类型。
list:输入项的候选列表,需要和datalist元素配合使用,list属性可用在这些类型上:text、search、url、tel、email、date、number、range和color,目测在FireFox上有效。看一个小例子:

代码如下:

fieldset
legend Favorites /legend
p
label
input type="text" name="favorites" list="options"
datalist id="options"
option value="A"
option value="B"
option value="C"
/datalist
/label
/p
/fieldset

下面的例子尝试使用了各个属性,可以运行在不同的浏览器下查看实际效果:

代码如下:

form action="demo_form.asp"
E-mail: input type="email" name="email" autocomplete="on" /
Image: input type="image" src="img_submit.gif" alt="" width="48" height="48"/
Enter a date before 1980-01-01:input type="date" name="bday" max="1979-12-31"
Enter a date after 2000-01-01:input type="date" name="bday" min="2000-01-02"
Quantity (between 1 and 5):input type="number" name="quantity" min="1" max="5" /
Select images: input type="file" name="img" multiple="multiple" /
Country code: input type="text" name="country_code" pattern="[A-Za-z]{3}" /
First Name: input type="text" name="fname" placeholder="First name" /
Username: input type="text" name="usrname" required="required" /
Number: input type="number" name="points" step="3" /

input type="submit" /
input type="submit" formaction="demo_admin.asp" value="Submit as admin" /
input type="submit" formenctype="multipart/form-data" value="Submit as Multipart/form-data" /
input type="submit" formmethod="post" formaction="demo_post.asp" value="Submit using POST" /
input type="submit" formnovalidate="formnovalidate" value="Submit without validation" /
input type="submit" formtarget="_blank" value="Submit to a new window" /
/form
form action="demo_form.asp" id="form1"
First name: input type="text" name="fname" /
input type="submit" value="Submit" /
/form
Last name: input type="text" name="lname" form="form1" /

建议:虽然并不是所有的浏览器都支持全部的类型,但是还是鼓励大家使用这些新类型,因为即使浏览器不支持,只不过是会退化成简单的text输入框而已。

实用参考:
W3C的教程:http://www.w3schools.com/html5/default.asp
HTML5官方指导:http://dev.w3.org/html5/html-author/
相当不错的一个指导网站:http://html5doctor.com/
HTML5中文教程:http://www.html5china.com/
一个不错的前端博客:http://www.pjhome.net/default.asp?cateID=1
JS操作表单的相关知识:http://www.cnblogs.com/xugang/archive/2010/08/12/1798005.html

来源:http://www.tulaoshi.com/n/20160219/1597133.html

延伸阅读
标签: Web开发
  HTML5带出了一系列新元素,并且将在未来被广泛应用。然而,有一些元素在使用时易被混淆,包括以下两个新元素:article和section。 最常被问起的问题是:在什么情况下我们应该使用这些元素?以及我们应该如何正确的使用这些元素? Section元素 这 是一个最容易产生歧义的元素。它与div元素有什么区别?我们一直在用div来划分段落,...
标签: Web开发
HTML5在页面结构,多媒体处理等多方面都与以往的HTML有很大的不同。在本教程中,将带领大家使用HTML5,CSS3及PHP实际设计一个符合HTML5标准的简单的表单提交网页,读者可以从中学习到HTML5 新的表单页面的基本元素。本文的读者为有一定HTML,CSS及PHP的读者学习 表单的设计草图 由于本文不是教photoshop制作的文章,因此只是把设计的...
标签: Web开发
对比起XHTML来说,HTML5通过更简单的元素引起了一系列的思考,坦诚地讲,这真的是急需的简化。这些简化之一就是能够通过a标签包装像div,h标签(h1...h6),和段落标记P 这些块级元素。你没看错:用一个A标签包裹块级元素(译者注: 在HTML5以前,a标签属于行内元素,而div,h1,p 等为块级元素,如果强行包裹,可能会被强行截断为多个a标签。当然,都是浏...
标签: Web开发
META元素就是经常在和之间出现的东东。它对访问者本人是不可见的(除非分析HTML源文件),但是,它对浏览器和一些搜索引擎是可见的,用来描述文档特性。本文拟就对实用的和常见的META特性进行讨论。 首先,看一下META所支持的属性: name="" 指定特性名 content="" 指定特性值 scheme="" 命名一个解释特性值的方案 http-equiv="" HTTP...
    程序编制     随着WEB的发展,与浏览者的交互越来越受到网站制作者的重视。现在的主页跟最初的静态主页相比,界面更加友好,功能更加丰富。这些技术需要一些编程语言来完成,如JAVASCRIPT、VBSCRIPT、CGI、ASP等等。要想使自己的网站在因特网的浩瀚海洋里脱颖而出,就必须掌握这些编程语言...

经验教程

397

收藏

50
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部