表格
创建表格:<table>
、<tr>
、<td>
、<th>
标签
<table>
标签是表格的容器,用于定义表格的开始和结束
<tr>
表示表格中的一行。表格中的每一行都需要一个<tr>
标签
<td>
用于定义表格的普通单元格
<th>
用于定于表格的表头单元格
示例:学生信息表
<table>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>入学时间</th>
</tr>
<tr>
<td>张三</td>
<td>17</td>
<td>6月3日</td>
</tr>
<tr>
<td>李四</td>
<td>19</td>
<td>7月1日</td>
</tr>
<tr>
<td>王五</td>
<td>18</td>
<td>9月2日</td>
</tr>
</table>
表格的结构性标签
<thead>
标签用于分组表格的头部内容,通常包含一组<tr>
标签。这部分内容通常包含列标题。
<tbody>
标签用于分组表格的主体内容,通常包含表格中的实际数据行。
<tfoot>
标签用于分组表格的尾部内容,通常用于汇总数据或显示表格的脚注。这个部分一般放在表格底部。
示例:学生信息表
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>入学时间</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>17</td>
<td>6月3日</td>
</tr>
<tr>
<td>李四</td>
<td>19</td>
<td>7月1日</td>
</tr>
<tr>
<td>王五</td>
<td>18</td>
<td>9月2日</td>
</tr>
</tbody>
</table>
表格的属性:border
、cellpadding
、cellspacing
border
属性:定义表格单元格的边框宽度。默认情况下,表格是没有边框的。
cellpadding
属性:设置单元格内容与单元格边框之间的空白间距。默认值是浏览器决定的,通常为2个像素。
cellspacing
属性:设置单元格之间的间距(即单元格外部的空间)。默认值也是由浏览器决定的,通常为2个像素。
合并单元格:colspan
和 rowspan
colspan
和 rowspan
都是某个单元格的属性:
colspan
属性:定义一个单元格跨越多列。
rowspan
属性:定义一个单元格跨越多行。
表单基础
表单标签:<form>
、<input>
、<label>
、<textarea>
、<button>
、<select>
、<option>
HTML 表单是收集用户输入的基础工具。
<form>
标签
<form>
标签是表单的容器,包含表单中的所有输入元素。它还定义了表单数据提交的目的地(URL)和方法(如GET
或POST
)。
示例:
<form action="#" method = "post">
<!-- 表单内容-->
</form>
属性:
action
:指定表单提交时数据发送到的URL。
action
如果为空或未定义,表单将提交到当前页面的URL。
method
:指定提交表单时使用的HTTP方法。常见有GET
和POST
。
enctype
:指定表单数据的编码方式。常见值包括application/x-www-form-urlencoded
(默认)、multipart/form-data
(用于文件上传)、text/plain
(纯文本数据)。
<input>
标签
<input>
标签用于创建各种类型的输入框,如文本框、复选框、单选按钮等。根据type
属性的不同,<input>
可以创建不同的表单控件。
属性:
type
:指定输入框的类型,常见的有text
(文本框)、password
(密码框)、checkbox
(复选框)、radio
(单选按钮)、submit
(提交按钮)、file
(文件上传)、email
(电子邮件输入框)、number
(数字输入框,可以指定范围和步进值)、date
(日期输入框)等。
name
:指定输入框的名称,用于提交表单时标识数据。
value
:定义输入框的初始值,或提交时发送的值。
placeholder
:在输入框为空时显示的提示文本。
required
:如果存在该属性,则表单提交时必须填写此字段。
readonly
:该字段仅供读取,用户无法修改。
disabled
:该字段被禁用,用户无法交互。
关于value属性:
- 设置默认值:为输入框或按钮提供默认值。
- 表单提交:当表单提交时,
value
属性的值会与name
属性对应的字段一起发送到服务器。示例
1. 文本框(
type="text"
)<input type="text" name="username" value="默认用户名">
- 作用:文本框显示“默认用户名”作为初始值,用户可以修改。
2. 隐藏字段(
type="hidden"
)<input type="hidden" name="userId" value="12345">
- 作用:提交时发送“12345”作为
userId
的值,用户看不到这个字段。3. 复选框(
type="checkbox"
)<input type="checkbox" name="subscribe" value="newsletter"> 订阅
- 作用:选中复选框时,
subscribe
的值为“newsletter”;不选中则不发送。4. 单选按钮(
type="radio"
)<input type="radio" name="gender" value="male"> 男 <input type="radio" name="gender" value="female"> 女
- 作用:用户选择“男”时,
gender
的值为“male”;选择“女”时,值为“female”。5. 按钮(
type="submit"
)<input type="submit" value="提交表单">
- 作用:按钮显示“提交表单”文本
GET
方法与POST
方法
GET方法
特点:
- 数据会附加到URL中,以查询字符串的形式发送,例如
/submit-form?username=JohnDoe
。 - 适合于不修改服务器数据的请求,如搜索查询。
- 数据在URL中公开,通常有长度限制。
POST方法
特点:
- 数据在HTTP请求体中发送,而不是URL中。
- 适合提交较大数据或涉及用户隐私的数据,如登录表单、上传文件等。
- 数据不会在URL中显示,没有长度限制。
对比:
安全性:GET
方法在URL中公开数据,因此不适合发送敏感信息;POST
方法相对更安全,因为数据不会暴露在URL中。
数据大小:GET
方法有数据长度限制,POST
方法没有这种限制。
用途:GET
通常用于获取或查询数据,POST
通常用于提交数据以修改服务器上的资源。
表单验证
HTML5中的表单验证属性:required
、pattern
、maxlength
HTML5引入了一些表单验证属性,使得在客户端验证用户输入变得更加简单和直观
required
属性
作用:required
属性用于指定表单字段是必填项。使用这个属性后,用户在提交表单时必须填写该字段,否则表单提交将被阻止。
适用范围:<input>
、<textarea>
等表单元素。
pattern
属性
作用:pattern
属性允许使用正则表达式来定义用户输入的格式。
表单字段的值必须匹配这个正则表达式,否则表单提交将被阻止。
适用范围:主要用于<input type="text">
、<input type="email">
、<input type="tel">
等文本输入类型。
maxlength
属性
作用:maxlength
属性用于限制用户在文本输入框中可以输入的字符数量。超过指定字符数后,用户将无法继续输入。
适用范围:适用于<input type="text">
、<input type="password">
、<textarea>
等需要限制输入长度的字段。
提交表单后的处理
在学习HTML表单验证时,提交表单后的处理通常涉及验证结果的反馈和进一步的操作。以下是提交表单后常见的处理方式,尤其是针对表单验证后的处理:
1. 客户端验证
当用户填写表单并点击提交按钮时,浏览器会首先进行客户端验证。如果表单验证成功,表单会提交到服务器;如果验证失败,表单提交会被阻止,用户会看到错误提示。
2. 服务器端验证
虽然客户端验证可以减少无效数据提交到服务器,但服务器端验证仍然是必不可少的。这是因为客户端验证可以被绕过,服务器端验证可以确保数据的完整性和安全性。
3. 使用JavaScript增强表单提交后的处理
在一些应用中,JavaScript被用来增强表单提交后的用户体验,例如通过AJAX异步提交表单,避免页面刷新,并动态显示验证结果或提交状态。
具体细节在JS部分会讲到。
4. 提交后的用户体验优化
常见的优化方式包括:
- 显示加载动画:在表单提交后,显示加载动画或状态提示,以告知用户提交正在处理中。
- 成功/失败消息:在提交成功或失败后,明确告知用户结果,并提供进一步的操作提示(如返回表单或继续浏览)。
- 表单数据的持久性:在提交失败时,保留用户已输入的数据,避免重新填写。