formnovalidate 是 input 的布尔属性,用于使 type="submit" 或 type="image" 按钮跳过浏览器原生表单验证,适用于“暂存”“取消”等非最终提交场景,需关联表单且不影响 javascript 验证。

formnovalidate 是 input 标签的一个布尔属性,用于**让某个提交按钮跳过表单的内置验证**,即使表单中其他字段设置了 required、type="email" 等验证规则,点击带该属性的按钮也不会触发验证提示。
什么时候用 formnovalidate?
常见于需要“暂存”“取消”“另存为草稿”等非最终提交的操作按钮。比如:用户还没填完表单,但想先保存草稿;或有一个“重置”按钮,不想被验证拦住。
- 只对
type="submit"或type="image"的input(或button)生效 - 必须和
form关联(通过form属性或位于同一表单内) - 它不会禁用 JavaScript 验证,只绕过浏览器原生的
checkValidity()行为
基本写法示例
直接在提交按钮上添加 formnovalidate:
点击“暂存草稿”时,即使邮箱没填或格式错误,表单也会直接提交(后端需自行处理逻辑)。
配合 form 属性跨表单使用
当按钮不在 form 标签内时,可用 form 属性指定所属表单 ID:
这样按钮虽在表单外,仍能触发表单提交且不校验。
注意和限制
formnovalidate 不影响其他按钮的验证行为,也不改变表单本身的验证设置:
- 不能加在
type="button"上(它本就不提交,加了无效) - 不能加在文本框、选择框等非提交控件上(浏览器会忽略)
- 如果同时有多个 submit 按钮,只有带
formnovalidate的那个跳过验证 - 表单仍会发出 submit 事件,JavaScript 可监听并自定义逻辑
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











