第 10章表单元素[中]
学习要点:
1.type属性总汇
2.type属性解析
本章主要探讨 HTML5中表单中 input元素的 type属性,根据不同的值来显示不同的输
入框。
一.type属性总汇
input元素可以用来生成一个供用户输入数据的简单文本框。在默认的情况下,什么样
的数据均可以输入。而通过不同的属性值,可以限制输入的内容。
属性名称 说明
text 一个单行文本框,默认行为
password 隐藏字符的密码框
search 搜索框,在某些浏览器键入内容会出现叉标记取消
submit、reset、button 生成一个提交按钮、重置按钮、普通按钮
number、range 只能输入数值的框;只能输入在一个数值范围的框
checkbox、radio 复选框,用户勾选框;单选框,只能在几个中选一个
image、color 生成一个图片按钮,颜色代码按钮
email、tel、url 生成一个检测电子邮件、号码、网址的文本框
date、month、time、week、datetime、 datetime-local 获取日期和时间
hidden 生成一个隐藏控件
file 生成一个上传控件
二.input元素解析
1.type为 text值时
<input type="text">
解释:当 type值为 text时,呈现的就是一个可以输入任意字符的文本框,这也是默
认行为。并且,还提供了一些额外的属性。
属性名称 说明
list 指定为文本框提供建议值的 datalist元素,其值为datalist元素的 id值
maxlength 设置文本框最大字符长度
pattern 用于输入验证的正则表达式
placeholder 输入字符的提示
readonly 文本框处于只读状态
disabled 文本框处于禁用状态
size 设置文本框宽度
value 设置文本框初始值
required 表明用户必须输入一个值,否则无法通过输入验证
//设置文本框长度
<input type="text" size="50">
//设置文本框输入字符长度
<input type="text" maxlength="10">
//设置文本框的初始值
<input type="text" value="初始值">
//设置文本框输入提示
<input type="text" placeholder="请输入内容">
//设置文本提供的建议值
<input list="footlist">
<datalist id="footlist">
<option value="苹果">苹果</option>
<option value="桔子">桔子</option>
<option value="香蕉" label="香蕉">
<option value="梨子">
</datalist>
//设置文本框内容为只读,可以提交数据
<input type="text" readonly>
//设置文本框内容不可用,不可以提交数据
<input type="text" disabled>
2.type为 password值时
<input type="password">
解释:当 type值为 password时,一般用于密码框的输入,所有的字符都会显示星号。
密码框也有一些额外属性。
属性名称 说明
maxlength 设置密码框最大字符长度
pattern 用于输入验证的正则表达式
placeholder 输入密码的提示
readonly 密码框处于只读状态
disabled 文本框处于禁用状态
size 设置密码框宽度
value 设置密码框初始值
required 表明用户必须输入一个值
这里除了正则和验证需要放在下一节,其余和文本框一致。
3.type为 search时
<input type="search">
解释:和文本框一致,在除 Firefox浏览器的其他现代浏览器,会显示一个叉来取消
搜索内容。额外属性也和 text一致。
4.type为 number、range时
<input type="number">
<input type="range">
解释:只限输入数字的文本框,不同浏览器可能显示方式不同。生成一个数值范围文本
框,只是样式是拖动式。额外属性如下:
属性名称 说明
list 指定为文本框提供建议值的datalist元素,其值为datalist元素的id值
min 设置可接受的最小值
max 设定可接受的最大值
readonly 设置文本框内容只读
required 表明用户必须输入一个值,否则无法通过输入验证
step 指定上下调节值的步长
value 指定初始值
//范围和步长
<input type="number" step="2" min="10" max="100">
5.type为 date系列时
<input type="date">
<input type="month">
<input type="time">
<input type="week">
<input type="datetime">
<input type="datetime-local">
解释:实现文本框可以获取日期和时间的值,但支持的浏览器不完整。我们测试 Chrome
和 Opera支持,其他浏览器尚未支持。所以,在获取日期和时间,目前还是推荐使用 jQuery
等前端库来实现日历功能。额外属性和 number一致。
6.type为 color时
<input type="color">
解释:实现文本框获取颜色的功能,最新的现代浏览器测试后 IE不支持,其余的都能
显示一个颜色对话框提供选择。
7.type为 checkbox、radio时
音乐 <input type="checkbox">
体育 <input type="checkbox">
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女
解释:生成一个获取布尔值的复选框或固定选项的单选框。额外属性如下:
属性名称 说明
checked 设置复选框、单选框是否为勾选状态
required 表示用户必须勾选,否则无法通过验证
value 设置复选框、单选框勾选状态时提交的数据。默认为 on
//默认勾选,默认值为 1
<input type="checkbox" name="music" checked value="1">
8.type为 submit、reset和 button时
<input type="submit">
解释:生成一个按钮,三种模式:提交、重置和一般按钮,和<button>元素相同。
值名称 说明
submit 生成一个提交按钮
reset 生成一个重置按钮
button 生成一个普通按钮
如果是 submit时,还提供了和<button>元素一样的额外属性:formaction、
formenctype、formmethod、formtarget和 formnovalidate。
9.type为 image时
<input type="image" src="img.png">
解释:生成一个图片按钮,点击图片就实现提交功能,并且传送了分区响应数据。图片
按钮也提供了一些额外属性。
属性名称 说明
src 指定要显示图像的 URL
alt提供图片的文字说明
width 图像的长度
height 图像的高度
formaction、formenctype、formmethod、formtarget
和 formnovalidate。
提交额外属性
10.type为 email、tel、url时
<input type="email">
<input type="tel">
<input type="url">
解释:email为电子邮件格式、tel为电话格式、url为网址格式。额外属性和 text
一致。但对于这几种类型,浏览器支持是不同的。email支持比较好,现在浏览器都支持格
式验证;tel基本不支持;url支持一般,部分浏览器只要检测到 http://就能通过。
11.type为 hidden时
<input type="hidden">
解释:生成一个隐藏控件,一般用于表单提交时关联主键 ID提交,而这个数据作为隐
藏存在。
12.type为 file时
<input type="file">
解释:生成一个文件上传控件,用于文件的上传。额外提供了一些属性:
属性名称 说明
accept 指定接受的 MIME类型
required 表明用户必须提供一个值,否则无法通过验证
accept="image/gif, image/jpeg, image/png"
例子
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>表单元素(中)</title>
</head>
<body>
<form action="http://www.baidu.com">
<!-- <input maxlength="10" size="30" value=" name="uesr" 默认值" readonly disabled > -->
<!-- <input type="text" list="abc" required> -->
<!-- <input type="password" placeholder="请输入密码"> -->
<!-- <input type="search"> -->
<!-- <input type="number" min="10" max="80" step="5"> -->
<!--
音乐 <input type="checkbox" name="music" value="1">
体育<input type="checkbox" name="sport" value="2"> -->
<!-- <input type="radio" name="sex" value="1" checked>男
<input type="radio" name="sex" value="2" >女 -->
<!-- <input type="submit">
<input type="reset">
<input type="button"> -->
<!-- <input type="image" src="1.jpg"> -->
<!-- <input type="email" name="email"> -->
<!-- <input type="hidden" value="1" name="id"> -->
<input type="file" accept="image/gif">
<button>提交</button>
</form>
<datalist id="abc">
<option value="1">苹果</option>
<option value="2">香蕉</option>
<option value="3">西瓜</option>
<option label="葡萄" value="4">
<option value="菠萝">
</datalist>
</body>
</html>