单击 <button> 元素时的标准行为是啥?它会提交表格吗?
Posted
技术标签:
【中文标题】单击 <button> 元素时的标准行为是啥?它会提交表格吗?【英文标题】:What's standard behavior when <button> element is clicked? Will it submit the form?单击 <button> 元素时的标准行为是什么?它会提交表格吗? 【发布时间】:2021-08-25 00:01:50 【问题描述】:在表单中单击<button>
元素时的标准行为是什么?它会提交表单吗?
问题是关于标签/元素<button>
,而不是<input type=button>
。
【问题讨论】:
【参考方案1】:如果按钮在表单中,则默认行为是提交。
如果按钮不在表单中,它什么也不做。
请注意!
始终指定类型属性 按钮。默认类型为 Internet Explorer 是“按钮”,而 在其他浏览器中(以及在 W3C 规范)它是“提交”。
取自http://www.w3schools.com/tags/tag_button.asp
【讨论】:
button
没有 type
属性在 IE11 中提交。
我不敢相信我会这么说,但我认为 IE 是对的,而其他人都错了。我想我只是吐了一点。我看到 w3 说默认应该是submit
,但从逻辑上讲,button
更有意义。【参考方案2】:
是的,它默认为 submit
类型。
type = submit|button|reset [CI] 此属性声明按钮的类型。可能的值:
submit
:创建提交按钮。这是默认值。
见:http://www.w3.org/TR/html401/interact/forms.html#h-17.5
所以当button
在表单中时它会提交它,当它不在表单中时,它仍然默认为submit
但什么也不做(因为没有与之关联的表单)。
正如 raRaRa 在下面指出的,旧版本的 IE 将 button
标签默认类型设置为 button
:http://www.thefutureoftheweb.com/blog/button-wont-submit-in-ie
【讨论】:
以上是关于单击 <button> 元素时的标准行为是啥?它会提交表格吗?的主要内容,如果未能解决你的问题,请参考以下文章
RecyclerView onItemClick button和布局都有单击事件时的处理方式