HTMLbutton不提交表单

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

<button>My Button</button> 

不过,当我点击它时,它会提交表单。 代码如下:

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

所有这个button应该做的是一些JavaScript。 但即使看起来像上面的代码,它也会提交表单。 当我改变标签button来跨越,它完美的作品。 但不幸的是,它需要是一个button。 有没有办法阻止提交表单的button? 像例如

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

我认为这是HTML最令人讨厌的小特性…该button需要是“button”types才能不提交。

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

return false; 在onclick处理程序的结尾将完成这项工作。 但是,最好简单地将type="button"添加到<button> – 即使没有任何JavaScript,也可以正常运行。

戴夫·马克尔是正确的。 来自W3School的网站 :

总是指定button的types属性。 Internet Explorer的默认types是“button”,而在其他浏览器(以及W3C规范)中则是“提交”。

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

默认情况下,HTMLbutton提交表单。

这是因为即使button​​位于表单之外也是提交者(参见W3Schools网站: http : //www.w3schools.com/tags/att_button_form.asp )

换句话说,buttontypes默认为“提交”

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

因此,一个简单的方法来解决这个问题是使用buttontypes

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

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

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

build议不要使用<Button>标签。 改为使用<Input type='Button' onclick='return false;'>标记。 (使用“返回false”应该不会发送表单。)

一些参考资料

出于可访问性的原因,我不能用多个type=submitbutton来closures它。 使用多个button的form本身工作的唯一方法,但是只有一个可以在按Enter键时提交表单,以确保只有其中一个type=submit而其他types是其他types,例如type=button 。 通过这种方式,您可以从键盘支持方面获得更好的用户体验来处理浏览器上的表单。