formmethod属性用于submit或image类型input元素,覆盖表单默认method,实现同一表单多按钮不同HTTP方法提交;仅支持GET/POST,优先级高于form的method属性,可与formaction配合指定不同接口。

formmethod 属性用于 <input type="submit"> 或 <input type="image"> 元素,用来**覆盖表单默认的提交方式(method)**,单独指定本次提交使用的 HTTP 方法(如 GET 或 POST)。
什么时候需要 formmethod?
当一个页面中有多个提交按钮,且希望它们用不同方式提交同一表单时,formmethod 就很有用。比如:一个搜索按钮走 GET(便于分享链接),一个保存按钮走 POST(避免敏感数据暴露在 URL 中)。
基本用法示例
直接在 submit 类型的 input 上添加 formmethod:
<form action="/api/data">
<input type="text" name="query">
<input type="submit" value="搜索" formmethod="GET">
<input type="submit" value="保存" formmethod="POST">
</form>
立即学习“前端免费学习笔记(深入)”;
点击“搜索”会以 GET 请求发送(参数拼在 URL 后),点击“保存”则用 POST(参数放在请求体中)。
支持的值和注意事项
-
GET和POST是唯一被广泛支持的值;部分浏览器实验性支持PUT、DELETE,但服务端必须配合处理,且不推荐依赖 -
formmethod只对type="submit"或type="image"生效;对button或普通input无效 - 它优先级高于表单自身的
method属性,但只影响当前按钮触发的提交行为 - 如果没写
formmethod,就按<form method="...">的设置执行
搭配 formaction 使用更灵活
可以和 formaction 一起用,为不同按钮指定不同地址和方法:
<form>
<input type="submit" value="登录" formaction="/login" formmethod="POST">
<input type="submit" value="注册" formaction="/register" formmethod="POST">
</form>
这样两个按钮共用一个 <form> 标签,却能提交到不同接口,且都用 POST —— 省去重复写多个表单的麻烦。



















