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=submit
button来closures它。 使用多个button的form
本身工作的唯一方法,但是只有一个可以在按Enter
键时提交表单,以确保只有其中一个type=submit
而其他types是其他types,例如type=button
。 通过这种方式,您可以从键盘支持方面获得更好的用户体验来处理浏览器上的表单。