💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 第 10 章 表单元素[上] 学习要点: 1.表单元素总汇 2.表单元素解析 主讲教师:李炎恢 本章主要探讨 HTML5 中表单元素,表单元素用于获取用户的输入数据。 **一.表单元素总汇** 在 HTML5 的表单中,提供了各种可供用户输入的表单控件。 | **元素名称** | **说明** | | --- | --- | | form | 表示 HTML 表单 | | input | 表示用来收集用户输入数据的控件 | | textarea | 表示可以输入多行文本的控件 | | select | 表示用来提供一组固定的选项 | | option | 表示提供提供一个选项 | | optgroup | 表示一组相关的 option 元素 | | button | 表示可用来提交或重置的表单按钮(或一般按钮) | | datalist | 定义一组提供给用户的建议值 | | fieldset | 表示一组表单元素 | | legend | 表示 fieldset 元素的说明性标签 | | label | 表示表单元素的说明标签 | | output | 表示计算结果 | **二.表单元素解析** **1.&lt;form&gt;****定义表单** ``` <form method="post" action="http://www.haosou.com/">   &lt;button&gt;提交&lt;/button&gt; &lt;/form&gt; ``` 解释:&lt;form&gt;元素主要是定义本身是一组表单。 | **元素名称** | **说明** | | --- | --- | | action  | 表示表单提交的页面 | | method | 表示表单的请求方式:有 POST 和 GET 两种,默认 GET | | enctype | 表示浏览器对发送给服务器的数据所采用的编码格式。有三种:application/x-www-form-urlencoded(默认编码,不能将文件上传到服务器)、multipart/form-data(用于上传文件到服务器)、text/plain(未规范的编码,不建议使用,不同浏览器理解不同) | | name | 设置表单名称,以便程序调用 | | target | 设置提交时的目标位置:_blank、_parent、_self、_top | | autocomplete | 设置浏览器记住用户输入的数据,实现自动完成表单。默认为 on 自动完成,如果不想自动完成则设置 off。 | | novalidate | 设置是否执行客户端数据有效性检查,后面课程讲解。 | //使用 get 提交数据 ``` method="get" ``` //丧失自动提示功能 ``` autocomplete="off" ``` //使用_blank 新建目标  ``` target="_blank" ``` **2.&lt;input&gt;****表示用户输入数据** ``` <input name="user"> ``` 解释:&lt;input&gt;元素默认情况会出现一个单行文本框,有五个属性。 | **属性名称** | **说明** | | --- | --- | | autofocus | 让光标聚焦在某个 input 元素上,让用户直接输入 | | disabled | 禁用 input 元素 | | autocomplete | 单独设置 input 元素的自动完成功能 | | form | 让表单外的元素和指定的表单挂钩提交 | | type | input 元素的类型,内容较多,将在下节课展开讲解 | | name | 定义 input 元素的名称,以便接收到相应的值 | //聚焦光标 ``` <input name="user" autofocus> ``` //禁用 input ``` <input name="user" disabled> ``` //禁止自动完成 ``` <input name="user" autocomplete="off"> ``` //表单外的 input  ``` <form method="get" id="register"> ... </form> <input name="email" form="register"> ``` **3.&lt;label&gt;****添加说明标签** ``` <p><label for="user">用户名:<input id="user" name="user"></label></p> ``` 解释:&lt;label&gt;元素可以关联 input,让用户体验更好。且更加容易设置 CSS 样式。 **4.&lt;fieldset&gt;****对表单进行编组** ``` <fieldset>...</fieldset> ``` 解释:&lt;fieldset&gt;元素可以将一些表单元素组织在一起,形成一个整体。 | **属性名称** | **说明** | | --- | --- | | name | 给分组定义一个名称 | | form | 让表单外的分组与表单挂钩 | | disabled | 禁用分组内的表单 | **5.&lt;legend&gt;****添加分组说明标签** ``` <fieldset> <legend> 注册表单 </legend> </fieldset> ``` 解释:&lt;legend&gt;元素给分组加上一个标题。 **6.&lt;button&gt;****添加按钮**  ``` <button type="submit"></button> ``` 解释:&lt;button&gt;元素添加一个按钮,type 属性有如下几个值: | **值名称** | **说明** | | --- | --- | | submit | 表示按钮的作用是提交表单,默认 | | reset | 表示按钮的作用是重置表单 | | button | 表示按钮为一般性按钮,没有任何作用 | //提交表单  ``` <button type="submit">提交</button> ``` //重置表单 ``` <button type="reset">重置</button> ``` //普通按钮 ``` <button type="button">按钮</button> ``` 对于 type 属性为 submit 时,按钮还会提供额外的属性。 | **属性名称** | **说明** | | --- | --- | | form | 指定按钮关联的表单 | | formaction | 覆盖 form 元素的 action 属性 | | formenctype | 覆盖 form 元素的 enctype 属性 | | formmethod | 覆盖 form 元素的 method 属性 | | formtarget | 覆盖 form 元素的 target 属性 | | formnovalidate | 覆盖 form 元素的 novalidate 属性 |  //表单外关联提交 ``` <button type="submit" form="register">提交</button> ```