表单提交时type为button的input元素键值对是否会随POST请求发送?
问题解答
核心结论
表单提交时,<input type="button">的键值对不会被包含在POST请求中。
原因说明
<input type="button">是纯客户端交互按钮,仅用于触发JavaScript点击事件等前端操作,不属于表单的「可提交控件」范畴。浏览器处理表单提交时,只会收集专门用于提交数据的控件(比如type="text"/password/hidden/submit类型的input,以及select、textarea等)的键值对,不会处理type="button"的按钮。- 你尝试用它存储数据并通过POST传递失败,正是因为它不具备提交数据的能力。如果需要在表单提交时传递额外数据,推荐使用以下方式:
- 隐藏域:
<input type="hidden" name="yourKey" value="要传递的数据">,它会被自动包含在请求体中,且前端页面不可见 - 如果是需要用户输入的内容,使用
type="text"等标准输入控件,这类控件属于表单可提交范畴,提交时会自动携带键值对
- 隐藏域:
示例代码对比
原按钮代码:
<input type="button" name="justabutton" value="I'm just a button">
替代的隐藏域代码(用于传递数据):
<input type="hidden" name="justabutton" value="要传递的数据">
内容的提问来源于stack exchange,提问作者Karan Singh
相关产品推荐
相关产品推荐

