在标签上添加novalidate布尔属性即可禁用整个表单的HTML5原生验证,无需赋值;formnovalidate仅适用于提交按钮,用于单次提交跳过验证;禁用后:valid/:invalid伪类失效,且服务端校验不可省略。
怎么用 novalidate 禁用整个表单的 HTML5 原生验证
直接在 标签上加 novalidate 属性,就能跳过浏览器对 required、type="email"、pattern 等所有内置校验逻辑。它不依赖 JavaScript,也不影响表单提交行为本身,只是关掉验证提示和阻止提交的默认拦截。
常见错误是把它写成 novalidate="true" 或 novalidate="false" —— 实际上这是布尔属性,只写 novalidate 就生效,带值反而可能被某些解析器误读。
-
✅ 正确 -
⚠️ 兼容但冗余 -
❌ 不推荐,语义错误
只想禁用某个输入框的验证,该用哪个属性
用 formnovalidate,但它**只能用在提交按钮上**( 或 ),表示“点这个按钮时,忽略所有验证”。它不能加在 上——很多人误以为能这么用,结果无效。
如果你真想让某个字段不参与校验,正确做法是:去掉它的 required、pattern、min/max 等约束属性,或者临时用 JS 移除 validity 状态(但浏览器仍会按 DOM 属性触发校验)。
立即学习“前端免费学习笔记(深入)”;