0

我知道,如果我们有<form>一个<input>带或不带按钮的submit按钮,按下Enter键将提交该封闭表单。但是,即使没有<form>标签,IE 也会提交(特别是单击它遇到的第一个按钮)。

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <button onclick="alert('button 1 clicked')">button 1</button>
    <button onclick="alert('button 2 clicked')">button 2</button>
    <input type="text" />
</body>
</html>

高于Plunkr中的标记。

Enterinput字段中按下 ' ' 时,将看到' button 1 clicked ' 警报。

<input>如果我用标签包围<form>,它不会提交。

Plunkr

在 IE9 和 IE 10 中也观察到了这种行为(尚未测试其他版本)。这是 IE 中的错误,或者如果不是,如何阻止这种情况发生?

更新:如果我添加,type="button"则不会观察到上述行为。<button>标签的默认行为是submit吗?而且,只有 IE 的行为是这样的?

4

2 回答 2

1

如果我添加,type="button"则不会观察到上述行为。标签的默认行为是提交吗?而且,只有 IE 的行为是这样的?

这个答案帮助我确定添加type="button"不会导致这种效果

于 2013-09-28T08:17:06.183 回答
0

您可以通过添加'return false;'来阻止IE提交表单 在onclick事件中。这是代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
   <button onclick="alert('button 1 clicked'); return false; ">button 1</button>
   <button onclick="alert('button 2 clicked'); return false; ">button 2</button>
   <input type="text" />
</body>
</html>

此外,您还可以通过向其添加“return false”来阻止提交按钮提交表单。

于 2013-09-28T08:17:45.297 回答