我知道如果我们有<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中的标记。
在Enter
字段中按下“input
”时,会看到 按钮1点击 '警报。
如果我使用<input>
标记包围<form>
,则表示不提交。
在IE9和IE 10中也观察到此行为(尚未测试其他版本)。这是IE中的错误,或者如果不是,如何阻止这种情况发生?
更新 :如果我添加type="button"
,则不会发现上述行为。
<button>
代码的默认行为是submit
吗?并且,只有IE表现得像这样吗?
答案 0 :(得分:1)
如果我添加type="button"
,则不会观察到所述行为。提交标记的默认行为是什么?并且,只有IE表现得像这样吗?
This answer帮助我确定添加type="button"
不会导致此效果
答案 1 :(得分:0)
您可以通过在 onclick 事件中添加'return false;'来阻止IE提交表单。这是代码:
<!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'来阻止“提交”按钮提交表单。