HTML 表单和输入标签详解

HTML 表单是网页与用户交互的重要工具,它允许用户输入数据并将其提交到服务器。表单在网页中的应用非常广泛,例如登录、注册、搜索、评论等功能都离不开表单。本文将详细介绍 HTML 表单及其相关标签的使用方法,帮助你全面掌握表单的设计与实现。


表单的基本结构

HTML 表单使用 <form> 标签定义,表单中可以包含各种输入元素,例如文本框、密码框、单选按钮、复选框、下拉列表等。表单的基本结构如下:

<form action="/submit" method="post"><!-- 表单内容 -->
</form>
  • action:指定表单提交的目标地址(服务器端脚本的 URL)。
  • method:指定表单提交的 HTTP 方法,常用的有 GETPOST

表单常用标签

1. <form>:定义表单

<form> 标签用于创建表单,所有表单元素都需要放在 <form> 标签内。

<form action="/submit" method="post"><!-- 表单内容 -->
</form>

2. <input>:定义输入域

<input> 是表单中最常用的标签,用于创建各种输入控件。通过 type 属性可以定义不同的输入类型。

常见的输入类型
  • 文本输入type="text"
  • 密码输入type="password"
  • 单选按钮type="radio"
  • 复选框type="checkbox"
  • 提交按钮type="submit"
  • 重置按钮type="reset"
  • 文件上传type="file"
<input type="text" name="username" placeholder="请输入用户名">
<input type="password" name="password" placeholder="请输入密码">
<input type="submit" value="提交">

在这里插入图片描述

3. <textarea>:定义文本域

<textarea> 用于创建多行文本输入框,用户可以输入多行文本。

<textarea name="message" rows="5" cols="30">请输入内容...</textarea>

在这里插入图片描述

  • rows:定义文本域的行数。
  • cols:定义文本域的列数。

4. <label>:定义输入标签

<label> 标签用于为表单元素添加标签,提升用户体验。通过 for 属性将标签与输入元素关联。

<label for="username">用户名:</label>
<input type="text" id="username" name="username">

在这里插入图片描述

5. <fieldset><legend>:分组表单元素

<fieldset> 用于将一组相关的表单元素分组,并用边框包围。<legend> 用于定义分组的标题。

<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">
</fieldset>

在这里插入图片描述

6. <select><option>:定义下拉列表

<select> 用于创建下拉列表,<option> 用于定义列表中的选项。

<label for="country">选择国家:</label>
<select id="country" name="country"><option value="china">中国</option><option value="usa">美国</option><option value="japan">日本</option>
</select>

在这里插入图片描述

使用 <optgroup> 分组选项

<optgroup> 用于将下拉列表中的选项分组。

<select><optgroup label="亚洲"><option value="china">中国</option><option value="japan">日本</option></optgroup><optgroup label="欧洲"><option value="france">法国</option><option value="germany">德国</option></optgroup>
</select>

在这里插入图片描述

7. <button>:定义按钮

<button> 标签用于创建按钮,可以包含文本或图像。

<button type="submit">提交</button>
<button type="reset">重置</button>
<button type="button">普通按钮</button>

在这里插入图片描述

8. <datalist>:定义输入选项列表

<datalist> 用于为输入框提供预定义的选项列表,用户可以从列表中选择或输入自定义内容。

<label for="browser">选择浏览器:</label>
<input list="browsers" id="browser" name="browser">
<datalist id="browsers"><option value="Chrome"><option value="Firefox"><option value="Safari"><option value="Edge">
</datalist>

在这里插入图片描述

9. <keygen>:定义密钥对生成器字段

<keygen> 用于生成密钥对,通常用于表单的安全验证。不过,该标签在 HTML5 中已被废弃,不建议使用。

<keygen name="security">

10. <output>:定义计算结果

<output> 用于显示计算结果,通常与 JavaScript 结合使用。

<form oninput="result.value=parseInt(a.value)+parseInt(b.value)"><input type="number" id="a" value="0"> +<input type="number" id="b" value="0"> =<output name="result" for="a b">0</output>
</form>

在这里插入图片描述


表单的提交与验证

表单提交

表单提交时,浏览器会将用户输入的数据发送到服务器。可以通过 action 属性指定提交的目标地址,通过 method 属性指定提交方法(GETPOST)。

<form action="/submit" method="post"><label for="username">用户名:</label><input type="text" id="username" name="username"><br><br><label for="password">密码:</label><input type="password" id="password" name="password"><br><br><button type="submit">提交</button>
</form>

在这里插入图片描述

表单验证

HTML5 提供了一些内置的表单验证功能,例如:

  • 必填字段:使用 required 属性。
  • 输入格式验证:使用 type 属性(如 emailnumber 等)。
  • 最小/最大值:使用 minmax 属性。
<form><label for="email">邮箱:</label><input type="email" id="email" name="email" required><br><br><label for="age">年龄:</label><input type="number" id="age" name="age" min="1" max="100"><br><br><button type="submit">提交</button>
</form>

在这里插入图片描述


总结

HTML 表单是网页与用户交互的核心工具,掌握表单及其相关标签的使用方法对于前端开发至关重要。本文详细介绍了 <form><input><textarea><label><fieldset><select> 等常用表单标签的使用方法,并通过示例代码帮助理解。无论是简单的登录表单还是复杂的数据提交表单,HTML 都为我们提供了强大的工具来实现。

如果你想了解更多关于 HTML 表单的知识,可以参考 菜鸟教程 上的详细教程。


相关链接:

  • HTML 表单教程
  • HTML 输入类型
  • HTML5 新特性

标签: HTML, 表单, 输入标签, 前端开发, 网页交互

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/5388.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为EC6110T-海思Hi3798MV310_安卓9.0_通刷-强刷固件包

华为EC6110T-海思Hi3798MV310_安卓9.0_通刷-强刷固件包 刷机教程说明&#xff1a; 适用机型&#xff1a;华为EC6110-T、华为EC6110-U、华为EC6110-M 破解总分为两个部分&#xff1a;拆机短接破解&#xff08;保留IPTV&#xff09;和OTT卡刷&#xff08;不保留IPTV&#xff09…

在centos上编译安装opensips【初级-默认安装】

环境&#xff1a;centos9 last opensips3.2 dnf update -y dnf install -y gcc make git automake libtool pcre-devel libxml2-devel \libcurl-devel postgresql-devel \bzip2-devel zlib-devel ncurses-devel libuuid-devel \libpcap-devel # 有报错的直接删除cd /usr/lo…

线性规划:机器学习中的优化利器

一、线性规划的基本概念 线性规划&#xff08;Linear Programming, LP&#xff09;是运筹学中数学规划的一个重要分支&#xff0c;用于在一组线性不等式的约束条件下&#xff0c;找到线性目标函数的最大值或最小值。其问题可以表述为&#xff1a; 在一组线性约束条件 s.t.&am…

基于AutoDL云计算平台+LLaMA-Factory训练平台微调本地大模型

1. 注册与认证 访问AutoDL官网&#xff1a;前往 AutoDL官网。 注册账号&#xff1a;完成注册流程。 实名认证&#xff1a;按照要求完成实名认证&#xff0c;以确保账号的合规性。 2. 选择GPU资源 进入算力市场&#xff1a;在官网首页点击“算力市场”菜单。 挑选GPU&#x…

04JavaWeb——Maven-SpringBootWeb入门

Maven 课程内容 初识Maven Maven概述 Maven模型介绍 Maven仓库介绍 Maven安装与配置 IDEA集成Maven 依赖管理 01. Maven课程介绍 1.1 课程安排 学习完前端Web开发技术后&#xff0c;我们即将开始学习后端Web开发技术。做为一名Java开发工程师&#xff0c;后端Web开发…

Linux内核编程(二十一)USB驱动开发-键盘驱动

一、驱动类型 USB 驱动开发主要分为两种&#xff1a;主机侧的驱动程序和设备侧的驱动程序。一般我们编写的都是主机侧的USB驱动程序。 主机侧驱动程序用于控制插入到主机中的 USB 设备&#xff0c;而设备侧驱动程序则负责控制 USB 设备如何与主机通信。由于设备侧驱动程序通常与…

< OS 有关 > 阿里云:轻量应用服务器 的使用 安装 Tailscale 后DNS 出错, 修复并替换 apt 数据源

VPS 配置 主机&#xff1a;vCPU x2, 512MB, 20GB位置&#xff1a;阿里云&#xff0c;日本.东京OS&#xff1a; ubuntu24.20 原因&#xff1a; 这篇是操作过程的记录文章。 2 个月前&#xff0c; 在阿里云买了台 vps 。当时本想放到韩国&#xff0c;因为它离北京近。 但最便…

【STM32-学习笔记-11-】RTC实时时钟

文章目录 RTC实时时钟一、RTC简介二、RTC框图三、RTC基本结构四、RTC操作注意事项五、RTC函数六、配置RTCMyRTC.c 七、示例&#xff1a;实时时钟①、main.c②、MyRTC.c③、MyRTC.h RTC实时时钟 一、RTC简介 RTC&#xff08;Real Time Clock&#xff09;实时时钟 RTC是一个独立…

Hadoop•搭建完全分布式集群

听说这里是目录哦 一、安装Hadoop&#x1f955;二、配置Hadoop系统环境变量&#x1f96e;三、验证Hadoop系统环境变量是否配置成功&#x1f9c1;四、修改Hadoop配置文件&#x1f36d;五、分发Hadoop安装目录&#x1f9cb;六、分发系统环境变量文件&#x1f368;七、格式化HDFS文…

网络通信---MCU移植LWIP

使用的MCU型号为STM32F429IGT6&#xff0c;PHY为LAN7820A 目标是通过MCU的ETH给LWIP提供输入输出从而实现基本的Ping应答 OK废话不多说我们直接开始 下载源码 LWIP包源码&#xff1a;lwip源码 -在这里下载 ST官方支持的ETH包&#xff1a;ST-ETH支持包 这里下载 创建工程 …

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(3.纯python的实惠版)

前情&#xff1a; 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch&#xff08;1.标准版&#xff09;-CSDN博客 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch&#xff08;2.换掉付费的Event Hubs&#xff09;-CSDN博客 python脚本实现 厉害的…

Kafka-常见的问题解答

讲一讲分布式消息中间件 问题 什么是分布式消息中间件&#xff1f;消息中间件的作用是什么&#xff1f;消息中间件的使用场景是什么&#xff1f;消息中间件选型&#xff1f; 分布式消息是一种通信机制&#xff0c;和 RPC、HTTP、RMI 等不一样&#xff0c;消息中间件采用分布式…

Android系统开发(六):从Linux到Android:模块化开发,GKI内核的硬核科普

引言&#xff1a; 今天我们聊聊Android生态中最“硬核”的话题&#xff1a;通用内核镜像&#xff08;GKI&#xff09;与内核模块接口&#xff08;KMI&#xff09;。这是内核碎片化终结者的秘密武器&#xff0c;解决了内核和供应商模块之间无尽的兼容性问题。为什么重要&#x…

数据结构-二叉树

树的相关概念&#xff1a; 1、节点的度&#xff1a;树中一个节点的孩子个数称为该节点的度&#xff0c; 所有节点的度的最大值是树的度 2、分支节点&#xff1a;度大于0的节点称为分支节点 3、叶子结点&#xff1a;度为0的节点称为叶子结点 4、节点的层次&#xff08;深度&…

他把智能科技引入现代农业领域

江苏田倍丰农业科技有限公司&#xff08;以下简称“田倍丰”&#xff09;是一家专注于粮油种植的农业科技公司&#xff0c;为拥有300亩以上田地的大户提供全面的解决方案。田倍丰通过与当地政府合作&#xff0c;将土地承包给大户&#xff0c;并提供农资和技术&#xff0c;实现利…

python进程池、线程池

Python广为使用的并发处理库futures使用入门与内部原理_concurrent.futures-CSDN博客 ThreadPoolExecutor(max_workers1) 池中至多创建max_workers个线程的池来同时异步执行&#xff0c;返回Executor实例、支持上下文&#xff0c;进入时返回自己&#xff0c;退出时调用 submit(…

51c~SLAM~合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/12327374 #GSLAM 自动驾驶相关~~~ 一个通用的SLAM架构和基准 GSLAM&#xff1a;A General SLAM Framework and Benchmark 开源代码&#xff1a;https://github.com/zdzhaoyong/GSLAM SLAM技术最近取得了许多成功&am…

Node.js 完全教程:从入门到精通

Node.js 完全教程&#xff1a;从入门到精通 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境&#xff0c;允许开发者在服务器端使用 JavaScript。它的非阻塞 I/O 和事件驱动架构使得 Node.js 非常适合于构建高性能的网络应用。本文将详细介绍 Node.js 的安装、基本语…

【JVM-9】Java性能调优利器:jmap工具使用指南与应用案例

在Java应用程序的性能调优和故障排查中&#xff0c;jmap&#xff08;Java Memory Map&#xff09;是一个不可或缺的工具。它可以帮助开发者分析Java堆内存的使用情况&#xff0c;生成堆转储文件&#xff08;Heap Dump&#xff09;&#xff0c;并查看内存中的对象分布。无论是内…

(二叉树)

我们今天就开始引进一个新的数据结构了&#xff1a;我们所熟知的&#xff1a;二叉树&#xff1b; 但是我们在引进二叉树之前我们先了解一下树&#xff1b; 树 树的概念和结构&#xff1a; 树是⼀种⾮线性的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09; …