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

devtools/2024/9/19 0:52:00/ 标签: 前端, javascript, web前端, web开发, html, 程序人生
htmledit_views">

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:使此选项不显示在下拉列表中。

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


http://www.ppmy.cn/devtools/96010.html

相关文章

如何快速获取麒麟操作系统版本信息

如何快速获取麒麟操作系统版本信息 一、桌面版系统1. 使用 /etc/kylin-build 文件2. 使用 /etc/.kyinfo 文件 二、服务器版系统1. 使用 /etc/.productinfo 文件2. 使用 nkvers 命令3. 使用 /etc/kylin-release 文件 三、总结 &#x1f496;The Begin&#x1f496;点点关注&…

LeetCode 3137.K 周期字符串需要的最少操作次数:哈希表计数

【LetMeFly】3137.K 周期字符串需要的最少操作次数&#xff1a;哈希表计数 力扣题目链接&#xff1a;https://leetcode.cn/problems/minimum-number-of-operations-to-make-word-k-periodic/ 给你一个长度为 n 的字符串 word 和一个整数 k &#xff0c;其中 k 是 n 的因数。 …

Windows环境在使用Pycharm设置Python解译器时提示找不到Python打包工具,安装打包工具错误提示解决方法

问题现像如下 截图&#xff1a; 解决方法&#xff1a; 第一步&#xff1a;在CMD命令行输入&#xff1a; python -m ensurepip --default-pip 安装distutils 第二步&#xff1a;检查和安装setuptools和wheel&#xff1a; python -m pip install --upgrade setuptools wheel…

JDBC连接池之HikariCP

HikariCP 是一个高性能的JDBC连接池&#xff0c;广泛应用于Java应用中&#xff0c;尤其是在对数据库连接性能和资源利用要求较高的场景。以下是HikariCP的一些关键特性和详细介绍&#xff1a; 1. 高性能 连接速度快: HikariCP以极快的连接速度著称&#xff0c;通常比其他连接…

调试和优化大型深度学习模型 - 2 使用 PyTorch Profiler 在 GPU 上分析模型的算子,并提取相关性能数据

调试和优化大型深度学习模型 - 2 使用 PyTorch Profiler 在 GPU 上分析模型的算子&#xff0c;并提取相关性能数据 flyfish ProfilerActivity.CPU 和 ProfilerActivity.CUDA 指定了需要分析 CPU 和 GPU 的活动。 record_shapesTrue 允许记录每个操作的输入张量形状&#xff0…

Spring Boot 核心配置

一、 Spring Boot配置文件分类 SpringBoot是基于约定的&#xff0c;所以很多配置都有默认值&#xff0c;但如果想使用自己的配置替换默认配置的话&#xff0c;就可以使用application.properties或者application.yml&#xff08;application.yaml&#xff09;进行配置 applicat…

msgqueue.hpp队列模块

目录 一.MsgQueue模块介绍 二.MsgQueue类的实现 成员变量 构造函数与析构函数 成员函数 参数设置函数 setArgs 参数获取函数 getArgs 三.MsgQueueMapper类的实现 成员变量 构造函数 成员函数 创建表格函数 createTable 删除表格函数 dropTable 插入数据函数 inse…

使用 Hutool 进行 Java 开发

Hutool 使用经验笔记 一、简介 Hutool 是一个现代的、Java 编写的工具类库&#xff0c;它提供了大量实用的功能&#xff0c;旨在简化日常的开发工作。Hutool 的设计哲学是“让 Java 更简单”&#xff0c;它试图以一种非侵入性的方式集成到现有的项目中&#xff0c;而不需要引…

Java 多线程练习2 (抽奖比较Runnable写法)

MultiProcessingExercise2 package MultiProcessingExercise120240814;import java.util.ArrayList; import java.util.Collections;public class MultiProcessingExercise1 {public static void main(String[] args) {// 需求&#xff1a;// 在此次抽奖过程中&#xff0c;抽奖…

红黑树剖析(插入部分)

文章目录 红黑树插入节点情景分析情景1&#xff1a;红黑树为空树情景2&#xff1a;插入节点的Key已存在情景3&#xff1a;插入节点的父节点为黑色节点情景4&#xff1a;插入节点的父节点为红色情景4.1 叔叔节点存在并且为红色节点情景4.2 叔叔节点存在而且是黑色节点情景4.3 叔…

【项目实战】C++视频共享点播系统

目录 一、项目介绍 1.1 对视频共享点播系统的认识 1.2服务端程序负责功能 1.3 服务端功能模块划分 1.4 项目界面演示 1.5预备知识 二.环境搭建 2.1 安装 Jsoncpp 库 2.1.1 使用jsoncpp 2.2 引入httplib库 2.2.1 安装Git&#xff08;如果你的系统尚未安装Git&#xf…

Nginx--代理与负载均衡(扩展nginx配置7层协议及4层协议方法、会话保持)

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、代理原理 1、反向代理产生的背景 单个服务器的处理客户端&#xff08;用户&#xff09;请求能力有一个极限&#xff0c;当接入请求过多时&#…

uniapp 日常业务 随便写写 源码

现成的组件 直接用 <template><view style"margin: 10rpx;"><view class"tea-header"><text class"tea-title">礼尚往来</text><view class"tea-view-all"><text>查看全部</text>&l…

基于免疫算法的最优物流仓储点选址方案MATLAB仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于免疫算法的最优物流仓储点选址方案MATLAB仿真。 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行 &#xff08;完整程序运行后无水印&#xff09; 3…

Spring boot 使用 jSerialComm 对串口使用发送信息并接收

什么是 jSerialComm&#xff1f; jSerialComm 是一个 Java 库&#xff0c;旨在提供一种独立于平台的方式来访问标准串行端口&#xff0c;而无需外部库、本机代码或任何其他工具。它旨在替代 RxTx 和&#xff08;已弃用的&#xff09;Java Communications API&#xff0c;具有更…

TCP详解(二)滑动窗口/流量控制

本文解释了TCP为何能保证数据传输的可靠性&#xff0c;以及如何保证整个网络的顺畅。 1 网络分层模型 这是一切的本质。网络被设计成分层的&#xff0c;所以网络的操作就可以称作一个“栈”&#xff0c;这就是网络协议栈的名称的由来。在具体的操作上&#xff0c;数据包最终形…

无人机飞手教员技术及就业前景分析

随着无人机技术的飞速发展&#xff0c;其在航拍、农业、物流、环境监测、应急救援等众多领域的应用日益广泛&#xff0c;无人机行业正迎来前所未有的发展机遇。在这一背景下&#xff0c;无人机飞手作为直接操作无人机进行各项任务的专业人员&#xff0c;其需求量激增。而无人机…

责任链设计模式

责任链设计模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为设计模式&#xff0c;它允许多个对象都有机会处理请求&#xff0c;从而避免请求的发送者与接收者之间的耦合。责任链模式通过将这些对象连成一条链&#xff0c;并沿着这条链传递请求&#xff…

计算机毕业设计 医院问诊系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

IDEA 2022.1.4用前需知

目录 一、配置国内源 二、正确再次创建新项目方式 IDEA 2022.1.4下载地址 一、配置国内源 1、查看本地仓库地址 2、设置国内源-添加Setting.xml文件内容 3、修改目录&#xff08;考虑到当前硬盘空间大小&#xff0c;英文目录名&#xff09; 1&#xff09;创建你要移动过去…