不提交表单的 HTML 按钮

IT技术 javascript html
2021-01-27 07:30:47

我有一个表格。在那个表格之外,我有一个按钮。一个简单的按钮,像这样:

<button>My Button</button>

然而,当我点击它时,它会提交表单。这是代码:

<form id="myform">
    <input />
</form>
<button>My Button</button>

这个按钮应该做的只是一些 JavaScript。但即使它看起来像上面的代码,它也会提交表单。当我将标签按钮更改为跨度时,它可以完美运行。但不幸的是,它必须是一个按钮。有没有办法阻止该按钮提交表单?像例如

<button onclick="document.getElementById('myform').doNotSubmit();">My Button</button>
6个回答

我认为这是 HTML 最令人讨厌的小特性......该按钮需要是“按钮”类型才能不提交。

<button type="button">My Button</button>

2019 年 2 月 5 日更新:根据HTML Living Standard(以及HTML 5 规范):

缺失值默认无效值默认是提交按钮状态。

@Powerslave 任何理由不 to use <button>
2021-03-19 07:30:47
这是一个很好的答案,但它不是一个特点标签中type属性的默认值为当更改为 时没有默认行为。在此处查看属性:developer.mozilla.org/en-US/docs/Web/HTML/Element/button<button>submittype=button<button>type
2021-03-25 07:30:47
@SandipPingle 没有理由使用它,除非您需要一些非常复杂的样式。此外,IE6 和 IE7(幸运的是已被淘汰)<button>在某些情况下会错误地处理 s。此外,<button>它不是 100% 跨浏览器兼容的,因为<button>在表单中使用时,不同的浏览器可能会提交不同的值
2021-04-04 07:30:47

return false;在 onclick 处理程序结束时将完成这项工作。但是,最好简单地添加type="button"<button>- 这样它即使没有任何 JavaScript 也能正常运行。

return false;并非在所有情况下都有效,而type="Button"确实如此。即使启用了 JavaScript。
2021-03-23 07:30:47
不提交表单的按钮只在启用了 JavaScript 的情况下才有用……不过我同意 type="button" 更干净。
2021-04-04 07:30:47

默认情况下,html 按钮提交表单。

这是因为即使位于表单外部的按钮也充当提交者(请参阅 W3Schools 网站:http : //www.w3schools.com/tags/att_button_form.asp

换句话说,按钮类型默认为“提交”

<button type="submit">Button Text</button>

因此,解决这个问题的一个简单方法是使用按钮类型

<button type="button">Button Text</button>

其他选项包括在onclick或任何其他处理程序结束时返回 false 以在单击按钮时使用,或者使用 < input> 标签代替

要了解更多信息,请查看 Mozilla 开发者网络关于按钮的信息:https : //developer.mozilla.org/en/docs/Web/HTML/Element/button

戴夫马克尔是对的。W3School 的网站

始终为按钮指定类型属性。Internet Explorer 的默认类型是“按钮”,而在其他浏览器(以及 W3C 规范中)是“提交”。

换句话说,您使用的浏览器遵循 W3C 的规范。

另一个对我有用的选项是添加 onsubmit="return false;" 到表单标签。

<form onsubmit="return false;">

从语义上讲,解决方案可能不如上述更改按钮类型的方法好,但如果您只想要一个不会提交的表单元素,这似乎是一种选择。