学习笔记之HTML5表单

1. 表单基本结构

首先先通过一个简单的登录界面例子来了解表单的基本结构。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>新闻页面</title>
		<link href="css/style.css" rel="stylesheet" />
	</head>
	<body>
		<form method="post" action="">
			<h3>请输入账号密码</h3>
			<label for="user_name">账号:</label>
			<input type="text" name="user_name" size="20" /><br />
			<label for="password">密码:</label>
			<input type="text" name="password" size="20" />
			<p>
				<input type="reset" value="取消" name="back" />
				<input type="submit" value="登录" name="ok" />
			</p>
		</form>
	</body>
</html>

通过上面例子,一个完整的表单结构应该由下面三部分组成:

表单框(<form>标签):<form>标签是一个包含框,里面包含所有表单对象。表单框定义提交表单数据的各种属性,如提交字符编码、与服务器交互的URL、提交方式等。

表单对象(<input>、<select>、<textarea>):用于采集用户输入或选择的数据,如文本框、文本区域、密码框、隐藏域、单选框、复选框、下拉选择框及文件上传框等。

按钮(<input>、<button>标签):用于将数据发送给服务器,还可以用来控制其他脚本行为,如提交、重置,以及不包含任何行为的一般按钮。

 

<form>标签:该标签就像一个容器,其中放置各种表单对象。

语法:

<form method="post" action="" enctype="" target="" autocomplete="" novalidate="">

method属性:用于设置发送数据的方式,设置值有postget两种。

get方式:利用get方式发送数据时,数据会直接加在URL之后,安全性比较差,并且有255个字符的字数限制,适用于数据量少的表单。

post方式:是将数据封装之后再发送,字符串长度没有限制,数据安全性比较高。对于需要保密的信息,如:用户账号、密码、身份证号、地址以及电话等,通常会采用post方式进行发送。

 

action属性:表单通常会与ASP或PHP等数据库程序配合使用,属性action用来指出发送的目的地。

如:action="server.php"表示将表单送到server.php网页进行下一步处理。如果不使用数据库程序,也可以将表单发送到电子邮件信箱。

语法:

<form method="post" action="mailto:zhangsan@mail.com?subject=xxxx" enctype="text/plain">

mailto是发送邮件到设置的Email邮箱,"?subject=xxxx"设置邮箱主题。

③ enctype属性:是表单发送的编码方式,只有method="post"时才有效。有3种模式

enctype="application/x-www-form-urlencoded":此为默认值,如果enctype省略不写,则表示采取此种编码模式。

enctype="multipart/form-data":用于上传文件的时候。

enctype="text/plain":将表单发送到电子信箱时,enctype的值必须设为"text/plain”,否则将会出现乱码。

 

target属性:指定提交到哪一个窗口,属性值共有5个

_blank:打开窗口。

_self:当前窗口。

_parent:上一层窗口(父窗口)。

_top:最上层窗口。

框架名称:直接指定窗口或框架名称。

⑤ autocomplete属性:用来设置input组件是否使用自动完成功能,是HTML5新增的属性值,有on(使用)和off(不使用)两种。

⑥ novalidate属性:用来设置是否要在发送表单时验证表单,如需要验证则填入novalidate即可,novalidate属性也是HTML5新增的,目前IE并不支持novalidate属性。

 

2. 表单对象

1) 输入控件:输入组件是表单组件中最常用的,主要是让用户输入数据。

文本框(text)多行文本框(textarea)密码域(password)。HTML5新增的输入组件:date、number、color、range等。

2) 列表组件:包括select组件datalist组件

select组件:由<select>标签与<option>标签组成。

语法:<select>标签用来定义列表框,<option>标签用来设置列表中的选项。

<select>
	<option>选项一</option>
	<option>选项二</option>
	<option>选项三</option>
	...
</select>

示例:通过<optgroup>标签将城市分组,selected属性设置下列菜单默认值为“青岛”。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>新闻页面</title>
		<link href="css/style.css" rel="stylesheet" />
	</head>
	<body>
		<form>所在城市:
			<select name="选择城市">
				<optgroup label="山东省">
					<option value="潍坊">潍坊</option>
					<option value="青岛" selected="selected">青岛</option>
				</optgroup>
				<optgroup label="山西省">
					<option value="太原">太原</option>
					<option value="榆次">榆次</option>
				</optgroup>
			</select>
		</form>
	</body>
</html>

注意:

<select>标签可以通过下面的属性定制列表框:

     size:设置列表框中可以显示的选项个数。

     multiple:设置列表框中的选项是否支持多选。

<option>标签可以通过下面的属性定义列表项目的值和是否被选。

     value:设置选项的初始值。

     selected:表示此选项为默认选择项。

 

datalist组件:由<datalist><option>标签组成,必须与input组件的list属性一起使用。

datalist组件的功能类似于自造词列表,主要是让用户只要输入第一个字,就可以从列表中找出符合的词语。

 

3)选择组件:有两种,一种是单选按钮(radio),一种是复选框(checkbox)。选择控件一般都会以组的形式使用,形成控件组。

单选按钮(<input type="radio">):实际是一个圆形的选择框。多个单选按钮可以合并为一个单选按钮组,组中的name值必须相同。

示例:checked属性表示选中状态。

<form>所在城市:
	<label><input type="radio" name="RadionGroup1" value="北京"/>北京</label>
	<label><input type="radio" name="RadionGroup1" value="上海"/>上海</label>
	<label><input type="radio" name="RadionGroup1" value="保密" checked=""/>保密</label>
</form>

复选框(<input type="checkbox">:组可以允许多选选择。它的外观是一个矩形框。

示例:checked属性表示选中状态。

<form>喜欢吃的水果:
	<label><input type="radio" name="checkboxGroup1" value="香蕉"/>香蕉</label>
	<label><input type="radio" name="checkboxGroup1" value="苹果"/>苹果</label>
	<label><input type="radio" name="checkboxGroup1" value="柿子" checked=""/>柿子</label>
	<label><input type="radio" name="checkboxGroup1" value="雪莲"/>雪莲</label>
</form>

 

4)按钮组件有3种

① 表单填写完成之后,单击“提交”按钮(submit)将表单发送;

② 提供用户清除表单属性的“重置”按钮(reset);

③ 普通按钮(button),这种按钮本身并无任何作用,通常会配合javascript脚本来完成想要的效果。

 

3. HTML5新增输入类型

1)Email类型

email类型的input元素用法如下:

<input type="email" name="user_email"/>

示例:

<form action="demo_form.php" method="get">
	请输入您的Email地址:<input type="email" name="user_email" /><br />
	<input type="submit" />
</form>

2)url类型

url类型的input元素专门用于输入URL地址这类特殊文本的文本框。当提交表单时,如果所输入的内容是URL地址格式的文本,则会提交数据到服务器;如果不是URL地址格式的文本,则不允许提交。

url类型的input元素用法:

<input type="url" name="user_url" />

示例:

<form action="demo_form.php" method="get">
     请输入网址:<input type="url" name="user_url" /><br />
     <input type="submit" />
</form>

3)number类型

number类型的input元素提供用于输入数值的文本框。用户还可以设定对所接受的数字的限制,包括规定允许的最大值和最小值、合法的数字间隔或默认值等。如果所输入的数字不在限定范围之内,则会出现错误提示。

示例:

<form action="demo_form.php" method="get">
	请输入数值:<input type="number" name="number1" min="1" max="20" step="4" /><br />
	<input type="submit" />
</form>

number类型属性:

max:规定允许的最大值;

min:规定允许的最小值;

step:规定合法的数字间隔(如果step="4",则合法的数是“-4,0,4,8等);

value:规定默认值。

 

4)range类型

range类型的input元素提供用于输入包含一定范围内数字值的文本框,在网页中显示为滑动条。

用户可以设定对所接受的数字的限制,包括规定允许的最大值和最小值、合法的数字间隔或默认值等。如果输入的数字不在限定范围之内,则会出现错误提示。

示例:

<form action="demo_form.php" method="get">
	请输入数值:<input type="range" name="range1" min="1" max="30" />
	<input type="submit" />
</form>

注意:不同浏览器,显示效果会不同。


5)日期选择器

输入类型HTML代码说明
date<input type="date">选取日、月、年
month<input type="month">选取月、年
week<input type="week">选取周和年
time<input type="time">选取时间(小时和分钟)
datetime<input type="datetime">选取时间、日、月、年(UTC时间)
datetime-local<input type="datetime-local">选取时间、日、月、年(本地时间)

 

 

 

 

 

 

 

 

6)search类型

search类型的input元素提供用于输入搜索关键词的文本框。

search类型提供的搜索框不只是Google或百度的搜索框,而是任意网站,即任意网页中的任意一个搜索框。目前大多数网站的搜索框都是用<input type="text">的方式来实现的。而HTML5中定义了专用于搜索框的search类型。

示例:

<form action="demo_form.php" method="get">
	请输入搜索关键词:<input type="search" name="search1" />
	<input type="submit" value="Go"/>
</form>

7)tel类型

tel类型的input元素提供专门用于输入电话号码的文本框。它并不限定只输入数字,因为很多的电话号码还包括其他字符,如“+” “-” “(” “)”等,例如:86-0536-8888888。

示例:

<form action="demo_form.php" method="get">
	请输入电话号码:<input type="tel" name="tel1" />
	<input type="submit" value="提交"/>
</form>

8)颜色选择器

color类型的input元素提供专门用于选择颜色的文本框。它允许用户调用系统的选色器,令输入颜色非常方便。

示例:

<form action="demo_form.php" method="get">
	请选择一种颜色:<input type="color" name="color1" />
	<input type="submit" value="提交"/>
</form>

 

4. 新增的输入控制属性

HTML5不但为input元素增加了新的输入类型,而且新增了几个input属性,用于指定输入类型的行为和限制。

1)autocomplete属性

该属性可以帮助用户在input类型的输入框中实现自动完成内容输入,这些input类型包括:text、search、url、telephone、email、password、datepickers、range以及color。目前只有Opera浏览器支持该属性。有“on”和“off”。

<input type="url" name="url1" autocomplete="on">

2)autofocus属性

它是一个布尔值,可以使得在页面加载时,某表单控件自动获得焦点。这些控件可以是文本框、复选框、单选按钮、普通按钮等所有<input>标签的类型。

<input type="text" name="user_name" autofocus="autofocus">

3)form属性

 

4)formaction属性

formaction:用于重写表单的action属性。

formenctype:用于重写表单的enctype属性。

formmethod:用于重写表单的method属性。

formnovalidate:用于重写表单的novalidate属性。

formtarget:用于重写表单的target属性。

 

5)height和width属性

height和width属性规定用于image类型的input标签的图像高度和宽度,这两个属性只适用于image类型的<input>标签。

 

6)list属性

list属性用于指定输入框绑定哪一个datalist元素,其值是某个datalist的id。

目前IE浏览器不支持该属性。

 

7)min、max、step属性

max属性:规定输入框所允许的最大值。

min属性:规则输入框所允许的最小值。

step属性:为输入框规定合法的数字间隔(或称为“步进”。如果step="4",则合法的数值是-4、0、4、8等)。

 

8)multiple属性

该属性支持一次性选择多个文件,并且该属性同样支持新增的email类型。

示例:

<form action="test.asp" method="get">
	请输入网址:<input type="file" name="img" multiple="multiple"/>
	<input type="submit" value="提交"/>
</form>

 

9)pattern属性

该属性用于验证input类型输入框中用户输入的内容是否与自定义的正则表达式相匹配,适用于以下类型的<input>标签:text、search、url、telephone、email、password。

允许用户自定义一个正则表达式,而用户的输入必须符合正则表达式所指定的规则。

 

10)placeholder属性

用于为input类型的输入框提供一种提示(hint),这些提示可以描述输入框期待用户输入何种内容,在输入框为空时显示,而当输入框获得焦点时则会消失。placeholder属性适用于以下类型的<input>标签:text、search、url、telephone、email、password。

示例:

<form action="test.asp" method="get">
	请输入邮政编码:<input type="text" name="zip_code" pattern="[0-9]{6}" placeholder="请输入6位数的邮政编码"/>
	<input type="submit" value="提交"/>
</form>

 

11)required属性

用于规定输入框填写的内容不能为空,否则不允许用户提交表单。

适用于以下类型的<input>标签:text、search、url、telephone、email、password、date pickers、number、checkbox、radio、file。

 

5. 新增表单元素

1)datalist元素

用于为输入框提供一个可选的列表,用户可以直接选择列表中的某一预设的项,从而免去输入的麻烦。

该列表由datalist中的option元素创建。如果用户不希望从列表中选择某项,也可以自行输入其他内容。

注意:每一个option元素都必须设置value值。

 

2)keygen元素

该元素是密钥对生成器,能够使得用户验证更为可靠。用户提交表单时会生成两个键:私钥和公钥。私钥会被存储在客户端,公钥会被发送到服务器。公钥可以用于之后验证用户的客户端证书。

示例:

<form action="/test.asp" method="get">
	请输入用户名:<input type="text" name="user_name" /><br />
	请选择加密强度:<keygen name="security" /><br />
	<input type="submit" value="提交" />
</form>

 

3)output元素

用于在浏览器中显示计算结果或脚本输出,包含完整的开始和结束标签。

语法:<output name="">Text</output>

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>test</title>
		<script type="text/javascript">
			function multi(){
				a=parseInt(prompt("请输入第1个数字。",0));
				b=parseInt(prompt("请输入第2个数字。",0));
				document.forms["form"]["result"].value=a*b;
			}
		</script>
	</head>
	<body onload="multi()">
		<form action="/test.asp" method="get" name="form">
			两数的乘积为:<output name="result"></output>
		</form>
	</body>
</html>

 

6. 新增表单属性

1)autocomplete属性

form元素的autocomplete属性用于规定form中所有元素都拥有自动完成功能。

当autocomplete属性用于整个form时,所有从属于该form的元素便都具备自动完成功能。

如果要使个别元素关闭自动完成功能,则单独为该元素指定“autocomplete="off"”即可。

 

2)novalidate属性

用于在提交表单时取消整个表单的验证,即,关闭对表单内所有元素的有效性检查。

如果要只取消表单中较少部分内容的验证而不妨碍提交大部分内容,则可以将formnovalidate属性单独用于form中的这些元素。

示例:

<form action="/test.asp" method="get" novalidate="true">
	请输入电子邮箱地址:<input type="email"  name="user_email"/>
	<input type="submit" value="提交" />
</form>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值