HTML 表单简介
HTML 表单(Form)是用于收集用户输入的数据,并将其提交到服务器进行处理的基本工具。表单通常用于登录、注册、搜索、评论等场景。通过表单,用户可以通过不同类型的控件(如文本框、复选框、单选按钮等)与网页进行交互。
1. 表单的基本结构
HTML 表单由 <form>
元素表示,包含一个或多个表单控件(如文本框、按钮等)。表单的基本结构如下:
<form action="URL" method="method">
<!-- 表单控件 -->
</form>
action
:指定表单提交的目标 URL。method
:指定表单提交的数据方式,常见有:GET
:通过 URL 提交数据,数据附加在 URL 后(适用于查询等无副作用的操作)。POST
:通过请求体提交数据(适用于修改或提交敏感信息)。
2. 常用表单控件
2.1 文本输入框 <input>
用于接收单行文本输入。
<input type="text" name="username" placeholder="请输入用户名">
type="text"
:指定输入框类型为文本框。name
:定义输入字段的名称,提交表单时用于标识该字段。placeholder
:为输入框提供占位符文本,提示用户应输入内容。
2.2 密码输入框 <input>
用于接收密码,输入内容会以星号(*
)形式显示。
<input type="password" name="password" placeholder="请输入密码">
2.3 单选按钮 <input>
允许用户在多个选项中选择一个。
<input type="radio" name="gender" value="male"> 男
<input type="radio" name="gender" value="female"> 女
type="radio"
:定义单选按钮。name
:相同name
值的单选按钮属于同一组,用户只能选择其中一个。value
:指定单选按钮的值,提交表单时会提交该值。
2.4 复选框 <input>
允许用户选择一个或多个选项。
<input type="checkbox" name="subscribe" checked> 订阅邮件
type="checkbox"
:定义复选框。checked
:如果属性存在,表示复选框默认选中。
2.5 按钮 <button>
用于提交表单或执行其他操作。
<button type="submit">提交</button>
<button type="reset">重置</button>
type="submit"
:提交表单。type="reset"
:重置表单,将表单控件恢复到初始状态。
2.6 选择框 <select>
用于创建下拉菜单。
<select name="country">
<option value="us">美国</option>
<option value="cn">中国</option>
<option value="jp">日本</option>
</select>
<select>
:定义下拉菜单。<option>
:定义下拉菜单的选项。value
:定义选项的值。
2.7 多行文本框 <textarea>
用于接收多行文本输入。
<textarea name="message" rows="4" cols="50">在这里输入留言</textarea>
rows
:定义文本框的行数。cols
:定义文本框的列数。
2.8 文件上传 <input>
用于接收文件上传。
<input type="file" name="profile_picture">
type="file"
:允许用户选择一个文件进行上传。
3. 表单提交与处理
表单提交通常有两种方式:通过 GET
或 POST
方法。
3.1 GET 方法
数据通过 URL 发送,适用于查询、搜索等操作。提交的数据会显示在浏览器的地址栏中。
<form action="/search" method="GET">
<input type="text" name="query" placeholder="搜索">
<button type="submit">搜索</button>
</form>
提交表单时,URL 将会是:/search?query=搜索内容
3.2 POST 方法
数据通过 HTTP 请求体发送,适用于敏感信息的提交,如登录、注册等。提交的数据不会出现在 URL 中。
<form action="/login" method="POST">
<input type="text" name="username" placeholder="用户名">
<input type="password" name="password" placeholder="密码">
<button type="submit">登录</button>
</form>
4. 表单的其他常见属性
action
:指定表单数据提交的 URL。method
:指定数据提交的方法,常见值GET
或POST
。name
:为表单命名,便于通过 JavaScript 或 CSS 进行引用。target
:定义提交后的结果如何显示,常见值:_blank
(新窗口)、_self
(当前窗口)等。enctype
:指定表单数据的编码类型(常用于文件上传)。application/x-www-form-urlencoded
(默认值):表单数据按键值对的形式编码。multipart/form-data
:用于文件上传。application/json
:将数据以 JSON 格式提交。
5. 示例:完整的表单
<form action="/submit" method="POST">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" placeholder="请输入用户名" required><br><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" placeholder="请输入密码" required><br><br>
<label for="subscribe">订阅:</label>
<input type="checkbox" id="subscribe" name="subscribe" checked> 订阅新闻简报<br><br>
<label for="country">选择国家:</label>
<select id="country" name="country">
<option value="us">美国</option>
<option value="cn">中国</option>
<option value="jp">日本</option>
</select><br><br>
<label for="message">留言:</label><br>
<textarea id="message" name="message" rows="4" cols="50">在这里输入留言</textarea><br><br>
<button type="submit">提交</button>
</form>
6. 表单验证
HTML5 引入了一些表单验证功能,可以直接在 HTML 中指定验证规则,避免使用 JavaScript。
required
:指定该字段为必填。minlength
和maxlength
:指定输入框的最小和最大输入长度。pattern
:指定输入字段的正则表达式模式。
示例:
<form action="/submit" method="POST">
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" required placeholder="请输入邮箱地址"><br><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" minlength="8" required placeholder="密码至少8个字符"><br><br>
<button type="submit">提交</button>
</form>
7. 表单控件的组合使用
你可以将多个表单控件放在一起进行组合,使用 <fieldset>
标签来进行分组,<legend>
标签为每个组提供标题。
示例:
<form action="/submit" method="POST">
<fieldset>
<legend>个人信息</legend>
<label for="name">姓名:</label>
<input type="text" id="name" name="name"><br><br>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email"><br><br>
</fieldset>
<fieldset>
<legend>偏好设置</legend>
<label for="newsletter">订阅新闻:</label>
<input type="checkbox" id="newsletter" name="newsletter" checked><br><br>
</fieldset>
<button type="submit">提交</button>
</form>
总结
HTML 表单是收集用户输入的核心工具,通过各种表单控件(如文本框、复选框、按钮等),你可以构建功能丰富、用户友好的交互界面。HTML5 提供了很多新的表单控件和验证功能,使
发表回复