响应式 HTML 表单设计——WEB开发系列11

HTML 表单是 Web 应用程序的重要组成部分,用户通过它与网站交互,可以填写信息、提交数据等。HTML 表单用于收集用户的输入信息。HTML 表单表示文档中的一个区域,此区域包含交互控件,将用户收集到的信息发送到 Web 服务器。HTML 表单通常包含各种输入字段、复选框、单选按钮、下拉列表等元素。


一、什么是 HTML 表单?

HTML 表单是用户输入数据的区域。表单通过使用 ​​<form>​​ 标签定义,用户可以输入各类数据,比如文本、密码、多个选项等。表单数据可以通过几种方式发送到服务器上,最常见的是通过 HTTP POST 或 GET 请求。表单通常用于注册、登录、搜索和填写反馈等场景。

创建一个基本的表单

一个基本的表单结构如下:

html 复制代码
<!DOCTYPE html>
<html>
<head>
<title>基本表单示例</title>
</head>
<body>
<h1>注册表单</h1>
<form action="/submit" method="post">
<!-- 表单内容 -->
</form>
</body>
</html>

在上面的示例中:

  • ​<form>​ 标签的 ​action​ 属性指定了表单数据提交的目标 URL(在本例中是 ​/submit​)。
  • ​method​ 属性指定了发送数据的方式,可以是 ​GET​​POST​

二、输入 HTML 表单

表单的输入元素允许用户在其中输入信息。常见的输入元素有文本域、密码字段、单选按钮、复选框和提交按钮。接下来我们详细介绍这些输入元素。

1. 文本域(Text Fields)

文本字段允许用户输入单行文本。它通过 ​​<input>​​ 标签创建,并设置 ​​type​​ 属性为 ​​text​​。

html 复制代码
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>

在上面的代码中:

  • ​<label>​ 标签用于标识输入字段,​for​ 属性应与输入字段的 ​id​ 属性匹配,以提高可访问性。
  • ​required​ 属性表示该字段为必填项。

2. 密码字段

密码字段与文本字段类似,但会隐藏输入的内容。当用户输入密码时,字符以点或星号的形式显示。这可以通过将 ​​type​​ 属性设置为 ​​password​​ 实现。

html 复制代码
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>

3. 单选按钮(Radio Buttons)

单选按钮允许用户在多个选项中选择一个。每个单选按钮通过相同的 ​​name​​ 属性分组,但具有不同的 ​​value​​ 属性。

html 复制代码
<fieldset>
<legend>性别:</legend>
<input type="radio" id="male" name="gender" value="male" required>
<label for="male">男</label>
<input type="radio" id="female" name="gender" value="female">
<label for="female">女</label>
</fieldset>

​<fieldset>​​ 标签用于将相关的单选按钮组合在一起,​​<legend>​​ 标签用于为组提供标题。


4. 复选框(Checkboxes)

复选框允许用户选择多个选项。每个复选框都是独立的,且不需要共享同一 ​​name​​ 属性。

html 复制代码
<fieldset>
<legend>爱好:</legend>
<input type="checkbox" id="reading" name="hobbies" value="reading">
<label for="reading">阅读</label>
<input type="checkbox" id="travelling" name="hobbies" value="travelling">
<label for="travelling">旅行</label>
<input type="checkbox" id="sports" name="hobbies" value="sports">
<label for="sports">运动</label>
</fieldset>

5. 提交按钮(Submit Button)

提交按钮允许用户提交表单数据。它通过 ​​<input>​​ 标签创建,将 ​​type​​ 属性设置为 ​​submit​​。

html 复制代码
<form name="input" action="html_form_action.php" method="get">
Username: <input type="text" name="user">
<input type="submit" value="Submit">
</form>

6、整合所有元素

现在,让我们整合所有这些输入元素,创建一个完整的表单示例。

html 复制代码
<!DOCTYPE html>
<html>
<head>
<title>注册表单示例</title>
</head>
<body>
<h1>注册表单</h1>
<form action="/submit" method="post">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required><br><br>

<label for="password">密码:</label>
<input type="password" id="password" name="password" required><br><br>

<fieldset>
<legend>性别:</legend>
<input type="radio" id="male" name="gender" value="male" required>
<label for="male">男</label>
<input type="radio" id="female" name="gender" value="female">
<label for="female">女</label>
</fieldset>

<fieldset>
<legend>爱好:</legend>
<input type="checkbox" id="reading" name="hobbies" value="reading">
<label for="reading">阅读</label>
<input type="checkbox" id="travelling" name="hobbies" value="travelling">
<label for="travelling">旅行</label>
<input type="checkbox" id="sports" name="hobbies" value="sports">
<label for="sports">运动</label>
</fieldset>
  
<form name="input" action="html_form_action.php" method="get">
Username: <input type="text" name="user">
<input type="submit" value="Submit">
</form>

</form>
</body>
</html>

三、表单验证

表单验证可以通过 HTML5 原生属性(如 ​​required​​、​​minlength​​、​​maxlength​​、​​pattern​​ 等)和 JavaScript 等编程语言进行。例如:

html 复制代码
<label for="email">电子邮箱:</label>
<input type="email" id="email" name="email" required>

上述代码使用了 ​​type="email"​​,它不仅将输入限制为电子邮件格式,还利用浏览器内置的验证功能,确保用户输入有效的电子邮件地址。


四、表单样式

为了使表单更具可读性和美观,有时需要给表单添加 CSS 样式。以下是一个简单的 CSS 示例:

html 复制代码
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
form {
max-width: 400px;
padding: 20px;
border: 1px solid #ccc;
border-radius: 5px;
}
label {
display: block;
margin: 10px 0 5px;
}
input[type="text"],
input[type="password"],
input[type="email"] {
width: 100%;
padding: 8px;
margin-bottom: 10px;
border: 1px solid #ccc;
border-radius: 4px;
}
input[type="submit"] {
background-color: #4CAF50;
color: white;
border: none;
padding: 10px;
border-radius: 5px;
cursor: pointer;
}
input[type="submit"]:hover {
background-color: #45a049;
}
</style>

扩展:

表单中的单选按钮可以设置以下几个属性:value、name、checked

  • value:提交数据到服务器的值(后台程序PHP使用)
  • name:为控件命名,以备后台程序 ASP、PHP 使用
  • checked:当设置 checked="checked" 时,该选项被默认选中
html 复制代码
<form>
<p>你生活在哪个国家?</p>
<input type="radio" name="country" value="China" checked="checked">中国<br/>
<input type="radio" name="country" value="the USA">美国
</form>

注意: 同一组的单选按钮,name 取值一定要一致,比如上面例子为同一个名称"country",这样同一组的单选按钮才可以起到单选的作用。


如何使用隐藏在下拉列表中的默认空白值实现SELECT标记

只需使用禁用和/或隐藏属性:

html 复制代码
<form>
  <select>
    <option selected disabled hidden style="display: none" value=""></option>
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="fiat">Fiat</option>
    <option value="audi">Audi</option>
 </select>
</form>
  • selected:使此选项成为默认选项。
  • disabled:使此选项无法点击。
  • style="display:none":使此选项不在旧版浏览器中显示。
  • hidden:使此选项不显示在下拉列表中。

如有表述错误及欠缺之处敬请批评指正。

相关推荐
初遇你时动了情5 分钟前
uniapp 城市选择插件
开发语言·javascript·uni-app
zhangjr057539 分钟前
【HarmonyOS Next】鸿蒙实用装饰器一览(一)
前端·harmonyos·arkts
不爱学习的YY酱1 小时前
【操作系统不挂科】<CPU调度(13)>选择题(带答案与解析)
java·linux·前端·算法·操作系统
zongzi_4941 小时前
二次封装的天气时间日历选择组件
开发语言·javascript·ecmascript
AI_小站1 小时前
RAG 示例:使用 langchain、Redis、llama.cpp 构建一个 kubernetes 知识库问答
人工智能·程序人生·langchain·kubernetes·llama·知识库·rag
木子七1 小时前
vue2-vuex
前端·vue
麻辣_水煮鱼1 小时前
vue数据变化但页面不变
前端·javascript·vue.js
BY—-组态1 小时前
web组态软件
前端·物联网·工业互联网·web组态·组态
一条晒干的咸魚1 小时前
【Web前端】实现基于 Promise 的 API:alarm API
开发语言·前端·javascript·api·promise
WilliamLuo2 小时前
MP4结构初识-第一篇
前端·javascript·音视频开发