表单中的按钮会自动提交

时间:2010-03-13 21:11:17

标签: javascript html

最近是否更改了HTML版本(例如从ie7到IE8?) 我注意到以下变化导致我有些麻烦 - 我有一个与此类似的代码:

<form method="POST" action="/admin/modify">
<input type="text"/>
<button onclick="dosomething()">Press</button>
</form>
<script type="text/javascript">
function doSomething(){
// doesn't matter what actually
}
</script>

在此代码中对我的要求是,通过按下表单内的按钮,我想要的只是执行一些javascript操作,但事实上它也会导致表单被提交,即使我不愿意这样做。
那么 - 这是真的吗?如果是这样,我如何在from中执行一些java脚本actoin但是阻止表单自动提交?

2 个答案:

答案 0 :(得分:38)

根据W3schoolssubmit是IE 8中button元素的新默认操作:

  

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

因此,如果您未指定类型,则表单将在所有浏览器中提交,但不会在IE 7中提交。

这应该有效:

<button type="button" onclick="dosomething()">Press</button>

答案 1 :(得分:2)

来自button element的IE文档:

  

Internet Explorer 8及更高版本。此属性的默认值取决于当前文档兼容性模式。在IE8模式下,默认值为submit。在其他兼容模式和早期版本的Internet Explorer中,默认值为button。

标准建议默认类型为submit,以前版本的IE错误地默认为button