本节重点
- HTML5中添加了许多新特性的表单元素
- 表单元素主要表现在 元素Element + 类型Type + 属性attribute
表单元素汇总解析
- 表单元素列表
| 元素名称 | 说明 |
|---|---|
| form | 表示 HTML 表单 |
| input | 表示用来收集用户输入数据的控件 |
| textarea | 表示可以输入多行文本的控件 |
| select | 表示用来提供一组固定的选项 |
| option | 表示提供提供一个选项 |
| optgroup | 表示一组相关的 option 元素 |
| button | 表示可用来提交或重置的表单按钮(或一般按钮) |
| datalist | 定义一组提供给用户的建议值 |
| fieldset | 表示一组表单元素 |
| legend | 表示 fieldset 元素的说明性标签 |
| label | 表示表单元素的说明标签 |
| output | 表示计算结果 |
- 其他表单元素
| 元素名称 | 说明 |
|---|---|
| select | 生成一个下拉列表进行选择 |
| optgroup | 对 select 元素进行编组 |
| option | select 元素中的项目 |
| textarea | 生成一个多行文本框 |
| output | 表示计算结果 |
-
表单元素解析
表单元素有许多共有的属性,大家注意分辨 不同
表单元素的特有属性
1.form 表单解析
<form method="post" action="http://www.haosou.com/">
<button>提交</button>
</form>
form 表单的属性
| 属性名称 | 说明 |
|---|---|
| action | 表单需要提交的页面 |
| method | 表单需要提交的方式 get/post |
entype |
entype与文件上传息息相关<br /> 1. application/x-www-form-urlencoded(默认编码,不能将进行文件上传) 2. multipart/form-data (用于将文件上传到服务器的编码) <br /> 3. text/plain (未规范编码,不建议使用) |
| name | 表单名称,建议书写,用于程序识别表单 |
| target | 设置提交时的目标位置:_blank、_parent、_self、_top |
| autocomplete | 设置浏览器记住用户输入的数据,实现自动完成表单。<br />默认为on自动完成 , 如果不想自动完成则设置 off。 |
| novalidate | 是否进行表单的有效性检查(浏览器m默认的检查效果) |
2.input 表单的属性
| 属性名称 | 说明 |
|---|---|
| autofocues | 让光标聚焦在input上,可以让用户直接输入 |
| disable | 禁用input,(禁止用户输入) |
| autocomplete | 设置input的自动完成功能 |
form |
设置表单挂钩 让表单外的元素设置表单挂钩提交 |
| type | 元素的 type 属性是最多的 |
3.<label>设置表单说明
<label for="user">用户名:</label>
4.<fieldset>对表单进行编组
`<fieldset>`元素可以将一些表单元素组织在一起,形成一个整体,并且可与外部挂钩
| 属性名称 | 说明 |
|---|---|
| name | 给分组定义一个名称 |
| form | 让表单外的分组与表单挂钩
|
| disabled | 禁用分组内的表单 |
5.<legend>添加分组说明标签
<fieldset>
<legend>注册表单</legend>
</fieldset>
6.<button>添加按钮
button 按钮的type 属性有如下几个值:
| 值名称 | 说明 |
|---|---|
| submit | 表示按钮的作用是提交表单,默认 |
| reset | 表示按钮的作用是重置表单 |
| button | 表示按钮为一般性按钮,没有任何作用 |
button 的 type = submit 时会提供额外的属性 主要用作覆盖已有的 form 表单属性
| 属性名称 | 说明 |
|---|---|
| form | 指定按钮关联的表单 |
| formaction | 覆盖 form 元素的 action 属性 |
| formenctype | 覆盖 form 元素的 enctype 属性 |
| formmethod | 覆盖 form 元素的 method 属性 |
| formtarget | 覆盖 form 元素的 target 属性 |
| formnovalidate | 覆盖 form 元素的 novalidate 属性 |
表单元素(主要为 Input)的类型 Type
input 表单的属性用于 限制表单的内容 + 表单的样式
1.表单的属性汇总
| 属性 | 说明 |
|---|---|
| text | 简单的文本框,input的默认行为 |
| password | 密码框 |
| search | 搜索框 |
| submit 、reset 、button | 提交按钮、重置按钮、普通按钮 |
| number range | 只能输入数字的按钮,range 用于设置数字范围 |
| checkbox 、radio | 复选框,单选框 |
| image | 生成一个图片按钮 |
| color | 生成颜色代码的按钮 |
| email、tel、url | 生成一个检测电子邮件、号码、网址的文本框 |
| date、month、time、<br /> week、datetime、 datetime-local | 获取日期和时间 |
| hidden | 生成一个隐藏的控件 |
| file | 生成一个上传文件的组件 |
表单元素类型的分类解析
1.type值为text时 <input type = "text"> 元素属性
| 属性 | 说明 |
|---|---|
| list | 和为 input 框提供值的datalist一块使用,相当于select的变形形式 |
| maxlength | 设置文本框的最大宽度 |
| pattern | 用于输入的正则表达式 |
| placeholder | 用于输入字符的提示 |
| readonly | 设置只读状态 |
| disabled | 设置禁用状态 |
| size | 设置文本框的宽度 |
| value | 文本框的初始值 |
| required | 是否为必填字段 |
设置文本提供的建议值 为 select 的变相形式
<input list="footlist">
<datalist id="footlist">
<option value="苹果">苹果</option>
<option value="桔子">桔子</option>
<option value="香蕉" label="香蕉"> <option value="梨子">
</datalist>
2.type值为password时 一般用于密码框的输入,所有的字符都会显示星号
| 属性名称 | 说明 |
|---|---|
| maxlength | 设置密码框最大字符长度 |
| pattern | 用于输入验证的正则表达式 |
| placeholder | 输入密码的提示 |
| readonly | 密码框处于只读状态 |
| disabled | 文本框处于禁用状态 |
| size | 设置密码框宽度 |
| value | 设置密码框初始值 |
| required | 表明用户必须输入同一个值 |
3.type值search search表单会显示一个叉来取消搜索内容
search 表单的属性和 text 表单的属性相同
-
type 为 number、range 时
type = number 生成一个只能填写数字的文本框 type = range 生成一个表示数字范围的文本框,并且只能拖动
| 属性 | 说明 |
|---|---|
| list | 指定为文本框提供建议值的 datalist 元素,其值为 datalist 元素的 id 值 |
min |
设置可接受的最小值 |
max |
设定可接受的最大值 |
| readonly | 设置文本框内容只读 |
| required | 表明用户必须输入一个值,否则无法通过输入验证 |
step |
指定上下调节值的步长 |
| value | 指定初始值 |
设置数字的步长以及范围
<input type="number" step="2" min="10" max="100">
5.type = data时 文本框可以获取日期和时间的值
<input type="date">
<input type="month">
<input type="time">
<input type="week">
<input type="datetime">
<input type="datetime-local">
6.type = color 实现文本框获取颜色的功能
7.type = image 生成一个图片按钮,点击图片就实现提交功能
| 属性名称 | 说明 |
|---|---|
| src | 指定要显示图像的 URL |
| alt | 提供图片的文字说明 |
| width | 图像的长度 |
| height | 图像的高度 |
提交额外属性 |
formaction、formenctype、formmethod、formtarget和 formnovalidate。 |
8.type 为 checkbox、radio 时 生成一个获取布尔值的复选框或固定选项的单选框
| 属性名称 | 说明 |
|---|---|
| checked | 设置复选框、单选框是否为勾选状态 |
| required | 表示用户必须勾选,否则无法通过验证 |
value |
设置复选框、单选框勾选状态时提交的数据。默认为 on |
9.type 为 submit、reset 和 button 生成 提交、重置和一般按钮
如果是 type = submit 时,提供了和<button>元素一样的额外属性
formaction、
formenctype、
formmethod、
formtarget、
formnovalidate
10.**type 为 email、tel、url **
<input type="email">
<input type="tel">
<input type="url">
11.type 为 hidden 生成一个隐藏控件
<input type="hidden">
12.type 为 file 生成一个文件上传控件
| 属性名称 | 说明 |
|---|---|
| accept | 指定接受的 MIME 类型 |
| required | 表明用户必须提供一个值,否则无法通过验证 |
accept="image/gif, image/jpeg, image/png"
其他元素解析 select + textarea
- 其他表单元素
| 元素名称 | 说明 |
|---|---|
| select | 生成一个下拉列表进行选择 |
| optgroup | 对 select 元素进行编组 |
| option | select 元素中的项目 |
| textarea | 生成一个多行文本框 |
| output | 表示计算结果 |
-
select表单元素 生成下拉列表
<select name="fruit"> <option value="1">苹果</option> <option value="2">橘子</option> <option value="3">香蕉</option> </select><select>下拉列表元素至少包含一个<option>子元素,才能形成有效的选项列 表。<select>可以充分利用<optgroup>形成分组select选择区域内分组
slect的属性解析 (所有的表单元素都有 autofocus 属性)
| 属性名称 | 说明 |
|---|---|
| name | 设定提交时的名称 |
| disabled | 将下拉列表禁用 |
| form | 将表单外的下拉列表与某个表单挂钩 |
| size | 设置下拉列表的高度 |
multiple |
设置是否可以多选 |
<select name="fruit" size="30" multiple>
<option value="2" selected>橘子</option>
<optgroup label="水果类">
<option value="1">苹果</option>
<option value="2" selected>橘子</option>
<option value="3" label="香蕉">香蕉</option>
</optgroup>
</select>
3.多行文本框
多行文本框的属性设置
| 属性名称 | 说明 |
|---|---|
| name | 设定提交时的名称 |
| form | 将表单外的多行文本框与某个表单挂钩 |
| readonly | 设置多行文本框只读 |
| disabled | 将多行文本框禁用 |
| maxlength | 设置最大可输入的字符长度 |
| autofocus | 获取焦点 |
| placeholder | 设置输入时的提示信息 |
| rows | 设置行数 |
| cols | 设置列数 |
| wrap | 设置是否插入换行符,有 soft 和 hard 两种 |
| required | 设置必须输入值,否则无法通过验证 |
输入验证 主要针对于表单中的 email password number 等形式的表单进行验证
-
必填验证
<input type="text" required> -
范围限制验证
<input type="number" min="10" max="100"> -
正则表达式验证
适用于所有的表单<input type="text" placeholder="请输入区号+座机" required pattern="^[\d]{2,4}\-[\d]{6,8}$"> -
阻止表单的验证动作
<form action="http://li.cc" novalidate>
