表单验证演练场 - HTML5 Constraint API 演示
展示各种 HTML5 验证属性(required, pattern, min, max 等)和自定义验证消息的效果。
UD5工具箱
实时测试 HTML5 Constraint Validation API,查看 ValidityState 各属性变化,深入理解浏览器原生验证机制。
ValidityState 对象,包含多个布尔属性来描述具体的验证失败原因。主要方法包括 checkValidity()(静默检查)和 reportValidity()(检查并显示浏览器原生错误提示)。这套API被所有现代浏览器支持,无需额外库即可实现强大的表单验证。
ValidityState 对象包含以下11个布尔属性:
false 时为 true,表示字段完全有效。required 但值为空。type 类型不匹配(如 email 格式错误)。pattern 正则表达式。maxLength。minLength。min。max。step 步长约束。setCustomValidity() 设置了自定义错误消息。true 或 false,不会触发浏览器的原生错误提示UI(气泡)。适合在后台进行验证状态检测。novalidate 属性的表单上,reportValidity() 仍然能正常显示提示。
element.setCustomValidity(message) 可以设置自定义验证错误。如果 message 为非空字符串,则字段被标记为无效,customError 变为 true,且 validationMessage 返回该消息。重要:当条件满足后,必须调用 setCustomValidity('')(空字符串)来清除自定义错误,否则字段将一直处于无效状态。常见场景包括:确认密码匹配、用户名唯一性检查、跨字段验证等。
<form> 标签上添加 novalidate 属性即可禁用浏览器默认的表单提交验证。这样表单提交时不会弹出原生错误提示,开发者可以完全通过 JavaScript 和 Constraint API 来自行处理验证逻辑和错误展示。例如:<form novalidate>。这在使用自定义UI框架或需要统一错误展示风格时非常有用。
展示各种 HTML5 验证属性(required, pattern, min, max 等)和自定义验证消息的效果。
定义字段名称和类型(姓名、邮箱、数字范围等),批量生成符合规则的 JSON 模拟数据。
覆盖加载、渲染、安全、可访问性等领域的自查清单,勾选后生成得分与建议。
在单页内模拟MPA过渡效果,自定义进场/出场动画,体验View Transitions API丝滑切换。
枚举连接的显示器,并在特定的屏幕上打开新窗口,体验现代多显示器Web应用。
向任意输入URL发送请求,清晰显示响应状态码、头信息和体,类似轻量级Postman。
展示一些常用内置HTML元素和自定义元素例子,提供代码复制。
使用原生HTML Popover属性创建提示、菜单与对话框,展示四种触发方式及样式定制。
提供一份涵盖性能、安全、备份、监控等上线前检查清单,可自定义勾选。
对比 ES Module 和经典脚本的变量作用域、严格模式以及执行时机。
输入 URL,列出所有第三方域名的脚本,估算其对加载时间的影响。
使用Service Worker拦截fetch请求,并返回用户自定义的JSON模拟数据,用于前端独立开发。
记录页面交互触发的所有DOM事件及其目标、冒泡阶段,以日志和瀑布形式展示。
生成实现点击锚点平滑滚动到目标位置所需的JS代码及CSS scroll-behavior。
定义端点、JSON响应体和延迟毫秒,模拟后端API供前端本地开发调试。
发起请求获取当前URL或任意允许CORS的URL的Response Headers,展示详情。
输入常见的报错片段,基于静态库返回常见的解释和可能的修复方案。
测试navigator.clipboard读写功能,写入文本或读取系统剪贴板,验证安全限制。
粘贴Link rel=preload头字段,解析展示服务器计划推送的资源列表。
选择算法并随机生成数组,以彩色条动画展示排序过程,帮助理解算法。
粘贴自定义图标字体的Unicode,调节尺寸颜色立即查看效果。
粘贴代码自动进行语法高亮显示,支持主流编程语言,生成带行号的HTML代码块,方便嵌入博客。
将普通CSS代码转换为Styled Components的模板字符串格式。
选择各种数据类型演示structuredClone的深拷贝能力,对比JSON.parse的限制。
显示当前页面所有资源的详细加载时序(DNS、连接、等待、接收),帮助优化。
在线响应式布局测试器,同时预览常见设备分辨率的网页显示效果,帮助检查前端适配。
构建二叉树节点,动态演示三种深度优先遍历顺序及逐层遍历。
向指定 URL 发送预检请求,分析 Access-Control-* 响应头是否符合预期。
将同类待办归入电话、外出、电脑等情境,一目了然优化执行顺序。
选择平台和分享参数,生成分享到Twitter、Facebook、WhatsApp等的URL链接及按钮。