HTML5 新表单属性详解
HTML5 为 <form>
和 <input>
标签引入了一系列新属性,极大地增强了表单的功能和用户体验。这些新属性不仅简化了开发者的工作,还为用户提供了更友好、更高效的交互方式。本文将详细介绍这些新属性,并结合代码示例帮助大家更好地理解和应用。
一、HTML5 表单新属性概述
HTML5 的新表单属性主要分为两类:
<form>
标签的新属性:用于控制整个表单的行为。<input>
标签的新属性:用于增强输入框的功能和验证。
这些新属性的引入,使得表单开发更加便捷,同时也提升了用户体验。
二、<form>
标签的新属性
1. autocomplete
- 作用:控制表单是否启用自动填充功能。
- 取值:
on
:启用自动填充(默认)。off
:禁用自动填充。
- 示例:
<form autocomplete="off"><input type="text" name="username" placeholder="用户名"><input type="password" name="password" placeholder="密码"><button type="submit">提交</button> </form>
2. novalidate
- 作用:禁用表单的默认验证行为。
- 适用场景:当需要自定义表单验证时,可以使用该属性。
- 示例:
<form novalidate><input type="email" name="email" placeholder="邮箱" required><button type="submit">提交</button> </form>
三、<input>
标签的新属性
1. autocomplete
- 作用:控制单个输入框是否启用自动填充功能。
- 取值:
on
:启用自动填充(默认)。off
:禁用自动填充。
- 示例:
<input type="text" name="username" placeholder="用户名" autocomplete="off">
2. autofocus
- 作用:页面加载时自动聚焦到该输入框。
- 适用场景:提高用户输入效率。
- 示例:
<input type="text" name="username" placeholder="用户名" autofocus>
3. form
- 作用:允许输入框与表单关联,即使输入框不在表单内部。
- 示例:
<form id="myForm"><button type="submit">提交</button> </form> <input type="text" name="username" placeholder="用户名" form="myForm">
4. formaction
- 作用:覆盖表单的
action
属性,指定表单提交的 URL。 - 适用场景:同一个表单可以提交到不同的处理页面。
- 示例:
<form><input type="text" name="username" placeholder="用户名"><button type="submit">提交到 A</button><button type="submit" formaction="/submit-b">提交到 B</button> </form>
5. formenctype
- 作用:覆盖表单的
enctype
属性,指定表单数据的编码方式。 - 取值:
application/x-www-form-urlencoded
(默认)multipart/form-data
(用于文件上传)text/plain
- 示例:
<form><input type="text" name="username" placeholder="用户名"><button type="submit">提交</button><button type="submit" formenctype="multipart/form-data">上传文件</button> </form>
6. formmethod
- 作用:覆盖表单的
method
属性,指定表单提交的 HTTP 方法。 - 取值:
get
post
- 示例:
<form><input type="text" name="username" placeholder="用户名"><button type="submit">使用 POST 提交</button><button type="submit" formmethod="get">使用 GET 提交</button> </form>
7. formnovalidate
- 作用:禁用表单的默认验证行为。
- 适用场景:当需要自定义表单验证时,可以使用该属性。
- 示例:
<form><input type="email" name="email" placeholder="邮箱" required><button type="submit">提交</button><button type="submit" formnovalidate>不验证提交</button> </form>
8. formtarget
- 作用:覆盖表单的
target
属性,指定表单提交后响应的显示位置。 - 取值:
_self
(默认)_blank
_parent
_top
- 示例:
<form><input type="text" name="username" placeholder="用户名"><button type="submit">在当前页面打开</button><button type="submit" formtarget="_blank">在新页面打开</button> </form>
9. height
与 width
- 作用:指定
<input type="image">
元素的高度和宽度。 - 示例:
<input type="image" src="submit.png" alt="提交" width="100" height="50">
10. list
- 作用:将输入框与
<datalist>
元素关联,提供输入建议。 - 示例:
<input type="text" name="browser" list="browsers"> <datalist id="browsers"><option value="Chrome"><option value="Firefox"><option value="Safari"> </datalist>
11. min
与 max
- 作用:指定输入框的最小值和最大值(适用于数字、日期等类型)。
- 示例:
<input type="number" name="age" min="18" max="100">
12. multiple
- 作用:允许用户输入多个值(适用于文件上传、邮箱等类型)。
- 示例:
<input type="file" name="files" multiple>
13. pattern
- 作用:指定输入值的正则表达式验证规则。
- 示例:
<input type="text" name="zipcode" pattern="\d{5}" placeholder="5 位邮政编码">
14. placeholder
- 作用:在输入框中显示提示文本。
- 示例:
<input type="text" name="username" placeholder="请输入用户名">
15. required
- 作用:指定输入框为必填项。
- 示例:
<input type="text" name="username" placeholder="用户名" required>
16. step
- 作用:指定输入值的步长(适用于数字、日期等类型)。
- 示例:
<input type="number" name="quantity" min="0" max="100" step="10">
四、总结
HTML5 的新表单属性极大地增强了表单的功能和用户体验。通过合理使用这些属性,开发者可以轻松实现表单的自动填充、输入验证、多步提交等功能,同时为用户提供更友好的交互体验。
以下是本文的重点回顾:
<form>
标签的新属性:autocomplete
、novalidate
。<input>
标签的新属性:autocomplete
、autofocus
、form
、formaction
、formenctype
、formmethod
、formnovalidate
、formtarget
、height
与width
、list
、min
与max
、multiple
、pattern
、placeholder
、required
、step
。
希望本文能帮助大家更好地理解和应用 HTML5 的新表单属性。如果有任何问题或建议,欢迎在评论区留言!
推荐阅读:
- HTML5 表单验证详解
- HTML5 新特性全面解析
关注我,获取更多前端开发干货!
相关文章:

HTML5 新表单属性详解
HTML5 为 <form> 和 <input> 标签引入了一系列新属性,极大地增强了表单的功能和用户体验。这些新属性不仅简化了开发者的工作,还为用户提供了更友好、更高效的交互方式。本文将详细介绍这些新属性,并结合代码示例帮助大家更好地理…...

JAVA 使用反射比较对象属性的变化,记录修改日志。使用注解【策略模式】,来进行不同属性枚举值到中英文描述的切换,支持前端国际化。
1.首先定义一个接口,接口中有两个方法,分别是将属性转换成英文描述和中文描述。 其实就是将数据库中记录的 0 1 ,转换成后面的描述 这边定义了中文转换为默认方法,是因为有些属性不需要进行中文转换,或者该属性的枚举…...

Docker入门学习
一、容器 1. 将单个操作系统中的资源划分到孤立的组中,在孤立的组中平衡有冲突的资源使用需求 2. Docker提供了容器管理的工具可以无需关注底层操作,使用效果类似于轻量级的虚拟机, 并且容器的创建和停止相对于虚拟机来说比较快&am…...

吴恩达深度学习——神经网络介绍
文章内容来自BV11H4y1F7uH,仅为个人学习所用。 文章目录 什么是神经网络引入神经网络神经元激活函数ReLU隐藏单元 用神经网络进行监督学习监督学习与无监督学习举例 什么是神经网络 引入 已经有六个房子的数据集,横轴为房子大小,纵轴为房子…...

STM32之CubeMX新建工程操作(十八)
STM32F407 系列文章 - STM32CubeMX(十八) 目录 前言 一、STM32CubeMX 二、新建工程 编辑 1.创建工程 2.选择芯片型号 3.Pinout引脚分配 1.SYS配置 2.RCC配置 3.定时器配置 4.GPIO引脚配置 5.中断配置 6.通讯接口配置 7.插件Middleware配…...

Postgresql源码(140)理解PG的编译流程(make、Makefile、Makefile.global.in)
PG16 PG中使用的makefile看起来代码比较多,但是实际逻辑比较简单,这里做一些抽象总结。 总结 Makefile.global.in的$(recurse)宏自动生成了target,可以方便的进入内存目录进行编译。 all: all-common-recurse all-common-recurse: submak…...

logback日志自定义占位符
前言 在大型系统运维中,很大程度上是需要依赖日志的。在java大型web工程中,一般都会使用slf4jlogback这一个组合来实现日志的管理。 logback中很多现成的占位符可以可以直接使用,比如线程号【%t】、时间【%d】、日志等级【%p】,…...

Vue平台开发三——项目管理页面
前言 对于多个项目的使用,可能需要进行项目切换管理,所以这里创建一个项目管理页面,登录成功后跳转这个页面,进行选择项目,再进入Home页面展示对应项目的内容。 一、实现效果图预览 二、页面内容 功能1、项目列表展…...

用于牙科的多任务视频增强
Multi-task Video Enhancement for Dental Interventions 2022 miccai Abstract 微型照相机牢牢地固定在牙科手机上,这样牙医就可以持续地监测保守牙科手术的进展情况。但视频辅助牙科干预中的视频增强减轻了低光、噪音、模糊和相机握手等降低视觉舒适度的问题。…...

【Node.js]
一、概述 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 ,使用了一个事件驱动、非阻塞式I/O模型, 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。 官网地…...

【Elasticsearch】腾讯云安装Elasticsearch
Elasticsearch 认识Elasticsearch安装Elasticsearch安装Kibana安装IK分词器分词器的作用是什么?IK分词器有几种模式?IK分词器如何拓展词条?如何停用词条? 认识Elasticsearch Elasticsearch的官方网站如下 Elasticsearch官网 Ela…...

【网络协议】ACL(访问控制列表)第一部分
概述 网络安全在网络中的重要性不言而喻。本文(即第一部分)将介绍ACL的基本概念以及标准ACL的配置。第二部分将重点讨论扩展ACL、其他相关概念以及ACL的故障排除。 文章目录 概述ACL定义数据包过滤ACLACL配置指导原则配置ACL的三条规则ACL功能ACL工作原…...

2025.1.20——一、[RCTF2015]EasySQL1 二次注入|报错注入|代码审计
题目来源:buuctf [RCTF2015]EasySQL1 目录 一、打开靶机,整理信息 二、解题思路 step 1:初步思路为二次注入,在页面进行操作 step 2:尝试二次注入 step 3:已知双引号类型的字符型注入,构造…...
Spring Boot 整合 Knife4j:打造更优雅的 API 文档
在现代 Web 应用开发中,API 文档的重要性不言而喻。清晰、准确、易用的 API 文档不仅可以方便开发者理解和使用 API,还能提高团队协作效率。Knife4j 是一个基于 Swagger 的增强型 API 文档工具,它可以为 Spring Boot 项目生成美观、易于交互的…...

Kafka 源码分析(一) 日志段
首先我们的 kafka 的消息本身是存储在日志段中的, 对应的源码是下面这段代码: class LogSegment private[log] (val log: FileRecords,val lazyOffsetIndex: LazyIndex[OffsetIndex],val lazyTimeIndex: LazyIndex[TimeIndex],val txnIndex: TransactionIndex,val baseOffset:…...

javaEE初阶————多线程初阶(2)
今天给大家带来第二期啦,保证给大家讲懂嗷; 1,线程状态 NEW安排了工作还未开始行动RUNNABLE可工作的,或者即将工作,正在工作BLOCKED排队等待WAITING排队等待其他事TIMED_WAITING排队等待其他事TERMINATED工作完成了 …...
Redis学习笔记1【数据类型和常用命令】
Redis学习笔记 基础语法 1.数据类型 String: 最基本的类型,可以存储任何数据,例如文本或数字。示例值为 hello world。Hash: 用于存储键值对,适合存储对象或结构体。示例值为 {"name": "Jack", "age": 21}。…...

JavaWeb项目——查询角色列表到页面中——转发模式
一、知识点 1、req.getRequestDispatch与resp.sendRedirect跳转方式的比较 一、实现原理 1、req.getRequestDispatcher: 属于服务器端跳转,在服务器内部将请求转发给另一个资源(如另一个 Servlet 或 JSP 页面)。调用 getReques…...
feign调用跳过HTTPS的SSL证书校验配置详解
一、问题抛出 如果不配置跳过SSL证书校验,当Feign客户端尝试连接到一个使用自签名证书的服务器时,可能会抛出类似以下的异常: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building faile…...

今天也是记录小程序进展的一天(破晓时8)
嗨嗨嗨朋友们,今天又来记录一下小程序的进展啦!真是太激动了,项目又迈出了重要的一步,231啦!感觉每一步的努力都在积累,功能逐渐完善,离最终上线的目标越来越近了。大家一直支持着这个项目&…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...