当前位置: 首页 > news >正文

HTML 约束验证

HTML5引入了表单相关的一些新机制:它为<input>元素和约束验证增加了一些新的语义类型,使得客户端检查表单内容变得容易。基本上,通过设置一些新的属性,常用的约束条件可以无需 JavaScript 代码而检测到;对于更复杂的约束条件的校验可以尝试使用约束验证 API。

固有和基本约束 

<input>元素

type 属性中的固有约束有 

Input 类型   约束描述    
<input type="URL">值必须为 URL 现行标准定义的绝对 URL 地址
<input type="email">该值必须是一个语法上有效的电子邮件地址

大多数 input 类型没有内在的约束,因为有些类型被禁止在约束验证中使用,或者有一个净化算法将不正确的值转化为正确的默认值。

验证相关的属性

除了上面描述的 type 属性外,以下属性用于描述基本约束。

属性支持该特性的 Input 类型约束描述
patterntextsearchurltelemailpassword输入的值必须符合模式。
minrangenumber、datemonthweek、datetime-localtime输入的值必须大于等于该属性值。
maxrangenumber、datemonthweek、datetime-localtime输入的值必须小于等于该属性值。
requiredtext、search、url、tel、email、password、date、datetime-local、month、week、time、number、checkbox、radio、file;也在 <select> 和 <textarea> 元素上可用如果指定了这个属性,则必须输入一个值。
stepdate、month、week、datetime-localtime、rangenumber如果 step 没有设置为字面量 any,则输入值必须为 min + step 值的整数倍。
minlengthtext、search、url、tel、email、password;也在 <textarea> 元素上可用如果输入值非空,则其字符数(码点)不得少于该属性的值。对于 <textarea>,所有换行符都被规范化为一个字符(相对于 CRLF 对)
maxlengthtext、search、url、tel、email、password;也在 <textarea> 元素上可用字符数(码点)不得超过该属性的值。

过程

约束验证是通过约束验证 API 在单个表单元素上或在表单层面上,通过 <form> 元素本身完成。约束验证是通过以下方式完成的:

通过调用表单相关的 DOM 接口(HTMLInputElement、HTMLSelectElement、HTMLButtonElement 、HTMLOutputElement 或 HTMLTextAreaElement)的 checkValidity() 或 reportValidity() 方法,只对这个元素进行约束评估,允许脚本获得这些信息。checkValidity() 方法返回一个布尔值,表示该元素的值是否通过其约束(这通常是由用户代理在确定哪个 CSS 伪类,:valid 或 :invalid 适用时完成的)。相反,reportValidity() 方法会向用户报告任何约束失败的情况。
通过调用 HTMLFormElement 接口上的 checkValidity() 或 reportValidity() 方法。
通过提交表单本身。
调用 checkValidity() 也被称为约束的静态验证,调用 reportValidity() 也被称为约束的交互认证。

  • 如果 <form> 元素上设置了 novalidate 属性,则不发生约束验证交互。
  • 在 HTMLFormElement 接口上调用 submit() 方法并不触发约束条件验证。换句话说,即使表单数据不满足约束条件,该方法也会将其发送到服务器。在提交按钮上调用 click() 方法来代替。

约束验证的可视化样式

除了设置约束条件外,web 开发者还想控制向用户显示什么信息以及它们的样式。

控制元素的外观

元素的外观可以通过 CSS 伪类进行控制。

:required、:optional CSS 伪类
:required 和 :optional 伪类允许开发者编写选择器,以匹配有 required 属性或没有该属性的表单元素。

:placeholder-shown CSS 伪类
参见 :placeholder-shown。

:valid、:invalid CSS 伪类
:valid 和 :invalid 伪类用于表示 <input> 元素,根据输入的类型设置,这些元素的内容分别可以验证和无法验证。这些类允许用户对有效或无效的表单元素进行样式设计,以使其更容易识别格式正确或不正确的元素。

控制约束验证的文字

以下一些方法可以控制违反约束条件的文本:

以下元素上的 setCustomValidity(message) 方法:

<fieldset>。备注:大多数浏览器中,在 fieldset 元素上设定自定义验证信息不会阻止表单提交。
<input>
<output>
<select>
提交按钮(使用类型为 submit 的 <button> 元素,或类型为 submit 的 input 元素创建。其他类型的按钮不参与约束验证。
<textarea>
ValidityState 接口描述了由上述元素类型的 validity 属性返回的对象。它表示一个输入值可能无效的各种方式。它们共同解释了为什么一个元素的值是无效的,则不能被验证。

相关文章:

HTML 约束验证

HTML5引入了表单相关的一些新机制&#xff1a;它为<input>元素和约束验证增加了一些新的语义类型&#xff0c;使得客户端检查表单内容变得容易。基本上&#xff0c;通过设置一些新的属性&#xff0c;常用的约束条件可以无需 JavaScript 代码而检测到&#xff1b;对于更复…...

vue3项目开发一些必备的内容,该安装安装,该创建创建

重新整理了一下项目开发必备的一些操作&#xff0c;以后直接复制黏贴运行&#xff0c;随着项目开发&#xff0c;后期会陆续补充常用插件或组件等 如果你是还没有安装过的新人&#xff0c;建议从《通过安装Element UI/Plus来学习vue之如何创建项目、搭建vue脚手架、npm下载、封装…...

2D拓扑图

2D拓扑图主要指的是在二维平面上表示物体形状和关系的一种图形表示方法。 一、基本概念 2D网格拓扑结构&#xff1a;在二维平面上&#xff0c;由一系列的节点&#xff08;node&#xff09;和边&#xff08;edge&#xff09;组成。每个节点代表一个具体的位置或坐标点&#xf…...

大数据面试题整理——Hive

系列文章目录 大数据面试题专栏点击进入 文章目录 系列文章目录Hive 面试知识点全面解析一、函数相关&#xff08;一&#xff09;函数分类与特点&#xff08;二&#xff09;concat和concat_ws的区别 二、SQL 的书写和执行顺序&#xff08;一&#xff09;书写顺序&#xff08;二…...

Python实现图像(边缘)锐化:梯度锐化、Roberts 算子、Laplace算子、Sobel算子的详细方法

目录 Python实现图像&#xff08;边缘&#xff09;锐化&#xff1a;梯度锐化、Roberts算子、Laplace算子、Sobel算子的详细方法引言一、图像锐化的基本原理1.1 什么是图像锐化&#xff1f;1.2 边缘检测的基本概念 二、常用的图像锐化算法2.1 梯度锐化2.1.1 实现步骤 2.2 Robert…...

【电机控制】相电流重构——单电阻采样方案

【电机控制】相电流重构——单电阻采样方案 文章目录 [TOC](文章目录) 前言一、基于单电阻采样电流重构技术原理分析1.1 单电阻采样原理图1.2 基本电压矢量与电流采样关系 二、非观测区2.1 扇区过渡区2.2 低压调制区 三、非观测区补偿——移相法四、参考文献总结 前言 使用工具…...

#基础算法

1 差分练习 1 模板题 代码实现&#xff1a; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int m sc.nextInt();int num sc.nextInt();long[][] arr new long[n 2][m …...

如何用猿大师办公助手实现OA系统中Word公文/合同在线编辑及流转?

在OA系统或者合同管理系统中&#xff0c;我们会经常遇到网页在线编辑Word文档形式的公文及合同的情况&#xff0c;并且需要上级对下级的公文进行批注等操作&#xff0c;或者不同部门的人需要签字审核&#xff0c;这就需要用到文档流转功能&#xff0c;如何用猿大师办公助手实现…...

Python中的列表是什么?它们有什么用途?

1、Python中的列表是什么&#xff1f;它们有什么用途&#xff1f; 在Python中&#xff0c;列表是一种有序的集合&#xff0c;可以包含不同类型的元素。列表可以存储一组值&#xff0c;并且可以方便地访问、修改和操作这些值。 列表的主要用途包括&#xff1a; 数据存储&…...

探索现代软件开发中的持续集成与持续交付(CI/CD)实践

探索现代软件开发中的持续集成与持续交付&#xff08;CI/CD&#xff09;实践 随着软件开发的飞速进步&#xff0c;现代开发团队已经从传统的开发模式向更加自动化和灵活的开发流程转变。持续集成&#xff08;CI&#xff09; 与 持续交付&#xff08;CD&#xff09; 成为当下主…...

React 前端框架开发入门案例

以下是一个使用 React 进行前端框架开发的入门案例&#xff0c;实现一个简单的待办事项列表应用。 一、准备工作 安装 Node.js&#xff1a;React 需要 Node.js 环境来运行。你可以从 Node.js 官方网站下载并安装适合你操作系统的版本。 创建项目目录&#xff1a;在你的电脑上…...

模拟 DDoS 攻击与防御实验

模拟 DDoS 攻击与防御实验可以帮助理解攻击原理和防御策略。在进行这种实验时&#xff0c;必须确保在受控、合法的环境中进行&#xff0c;避免对真实网络造成损害。以下是具体步骤&#xff1a; 环境要求 硬件&#xff1a;至少两台计算机&#xff08;或虚拟机&#xff09;&…...

【electron8】electron实现“图片”的另存为

注&#xff1a;该列出的代码&#xff0c;都在文章内示例出 1. 另存为按钮事件&#xff1a; const saveAsHandler async () > {const { path, sessionId } recordInfoif(typeof message ! string) return;// 因为我的图片是加密的&#xff0c;所以我需要根据接口返回的路…...

Python分析假期对美国出生率的影响

背景 1、数据集下载 birthsHistorical US birth data culled from the CDC website - jakevdp/data-CDCbirthshttps://github.com/jakevdp/data-CDCbirths 2、数据集介绍 此数据来自美国疾病控制和预防中心&#xff0c;并通过 Google 的 BigQuery Web UI 使用以下查询进行编…...

机械臂笛卡尔空间轨迹规划

1. 重新优化末端轨迹规划 调整末端轨迹的插值方法或参数&#xff1a;如果之前使用的是线性插值&#xff0c;可改为三次样条插值。例如&#xff0c;对于一个在二维平面上从点(0, 0)到(10, 10)的末端轨迹&#xff0c;线性插值可能是简单地在每个时间步长均匀增加坐标值&#xff0…...

红队工具---Behinder学习

1.什么是Behinder&#xff1f; Behinder 是一款用于网络渗透测试的安全工具&#xff0c;主要用于对 Web 应用进行攻击和漏洞利用。它提供了强大的功能&#xff0c;是一款红队的大杀器&#xff0c;几乎是现代web安全必须学习的一款webshell管理工具。 主要用途 渗透测试&#…...

k8s 1.28.2 集群部署 NFS server 和 NFS Subdir External Provisioner

文章目录 [toc]前言部署 NFS server镜像准备节点打标签启动 NFS server创建 pv 验证创建 pvc创建 pod 挂载验证 部署 NFS Subdir External Provisioner创建 pod 验证提前创建 pvc 的方式使用 volumeClaimTemplates 的方式 前言 NFS Subdir External Provisioner 可以使用现有的…...

前端零基础入门到上班:【Day1】什么是前端?

本来打算开付费专栏 但是想起那句话 赠人玫瑰手留余香 引言1. 什么是前端&#xff1f;1.1 前端的定义1.2 前端的三大核心技术1.3 前端框架和工具 2. 什么是后端&#xff1f;2.1 后端的定义2.2 后端的组成要素2.3 后端框架和工具 3. 前后端的区别4. 什么是前后端分离&#xff1f…...

搜索二叉树 Binary Search Tree(BST)

【提醒】本章内容需掌握二叉树结构的基本概念和特性&#xff0c;不然可能阅读起来比较费劲。 一、 概念 什么是搜索二叉树&#xff1f;搜索二叉树和普通二叉树的却别是什么&#xff1f; 答&#xff1a; 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树 或者是具有以下性…...

数据库表字段插入bug

瀚高数据库 目录 环境 BUG/漏洞编码 症状 触发条件 解决方案 环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;4.5.1 BUG/漏洞编码 3355 症状 数据库安全版v4.5.1&#xff0c;安装包为&#xff1a;hgdb4.5.1-see-centos7-x86-64-20210804.…...

OpenClaw多模型切换指南:Qwen3-32B与其他镜像协同工作

OpenClaw多模型切换指南&#xff1a;Qwen3-32B与其他镜像协同工作 1. 为什么需要多模型切换&#xff1f; 去年冬天&#xff0c;当我第一次尝试用OpenClaw自动化处理公司周报时&#xff0c;发现单一模型很难同时满足"数据分析"和"文案润色"两种需求。Qwen…...

RTX4090D显存优化:OpenClaw长文本处理实测Qwen3-32B性能

RTX4090D显存优化&#xff1a;OpenClaw长文本处理实测Qwen3-32B性能 1. 测试背景与实验设计 去年我在处理学术论文时&#xff0c;经常遇到需要分析几十页PDF的情况。传统工具要么截断文本&#xff0c;要么丢失关键上下文。当我发现OpenClaw支持本地部署大模型后&#xff0c;立…...

家庭实验室:树莓派控制OpenClaw调用远程Qwen3-32B

家庭实验室&#xff1a;树莓派控制OpenClaw调用远程Qwen3-32B 1. 为什么选择树莓派OpenClaw组合 去年冬天&#xff0c;我在整理家庭实验室设备时发现一个闲置的树莓派4B。这台信用卡大小的电脑曾经用来跑Home Assistant控制智能家居&#xff0c;但后来换了NUC主机就被束之高阁…...

将 OnePlus 手机备份到云服务

丢失 OnePlus 设备上的珍贵照片、重要联系人、短信或应用数据可能会令人非常沮丧&#xff0c;无论是意外删除、设备损坏、被盗&#xff0c;甚至是恢复出厂设置。这时&#xff0c;云备份就派上了用场。它提供了一种简单可靠的数据保护方式&#xff0c;确保您可以随时随地在新 On…...

嵌入式系统开发中的关键技术术语解析

嵌入式系统开发中的56个关键技术术语解析1. 数据转换基础概念1.1 采样与保持特性采集时间(Tacq)是从释放保持状态到采样电容电压稳定至新输入值的1 LSB范围之内所需的时间。在采样-保持电路中&#xff0c;这个参数直接影响系统的动态性能。孔径延迟(tAD)描述从时钟信号的采样沿…...

在Windows和RV1126上部署ONNX肺部分割模型:一份OpenCV DNN与RKNN的完整对比实践

跨平台肺部分割模型部署实战&#xff1a;OpenCV DNN与RKNN技术选型指南 当医疗影像分析遇上边缘计算&#xff0c;开发者们常常面临一个关键抉择&#xff1a;如何在保证精度的前提下&#xff0c;将训练好的深度学习模型高效部署到不同计算平台&#xff1f;本文将以肺部分割模型为…...

【STM32F4系列】【HAL库】【实战解析】MPU6050 DMP姿态解算与I2C通信优化

1. MPU6050与DMP库基础解析 第一次接触MPU6050时&#xff0c;我被它小巧的体积和强大的功能震撼到了。这个售价不到10元的芯片&#xff0c;居然能同时测量三轴角加速度和三轴线加速度。在实际项目中&#xff0c;我发现直接读取原始数据并不难&#xff0c;但要想获得稳定的姿态信…...

嵌入式开发工具选择与效率提升实践

1. 嵌入式开发者的工作状态与开发工具选择1.1 程序员工作场景分析嵌入式开发者在家庭办公环境中往往表现出独特的工作状态。通过观察典型的工作场景&#xff0c;我们可以总结出几个关键特征&#xff1a;专注度提升&#xff1a;家庭环境减少了办公室干扰&#xff0c;开发者更容易…...

中国AI模型调用量领跑全球:成本与开源优势塑造竞争新范式

当前&#xff0c;全球人工智能&#xff08;AI&#xff09;领域的竞争正经历着深刻变革。据全球最大AI模型API聚合平台OpenRouter的最新监测数据&#xff0c;中国AI大模型的周调用量已连续数周实现对美国的稳定且显著的超越&#xff0c;并在特定时期内包揽了全球调用量排行榜的前…...

douyin-downloader:让每个人都能轻松获取无水印视频的技术利器

douyin-downloader&#xff1a;让每个人都能轻松获取无水印视频的技术利器 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 一、问题破局&#xff1a;揭开抖音内容获取的神秘面纱 1.1 内容获取的三大拦路虎 …...