0

我知道,如果我们已经一个<form><input>带或不带submit按钮,在按下按键Enter将提交该封闭的形式。但是,IE被提交(即,点击第一按钮它遇到),甚至当没有<form>标签存在。IE触发提交按钮,甚至没有<form>标签

<!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>标签,它没有提交。

Plunkr

此行为是在IE9和IE 10也观察到(没有测试其它版本)。这是IE的一个错误,或者如果它不是,如何制止这种情况的发生?

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

+0

http://stackoverflow.com/a/932657/340290帮助我识别添加'类型=“按钮”'不会造成这种效果 – manikanta

回答

1

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

This answer帮助我识别添加type="button"不会造成这种效果

0

您可以阻止IE加入提交表单“返回false;”的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> 

而且还可以防止通过添加提交表单的提交按钮“返回false”它。

+0

但仍然按钮被点击。理想情况下,这不应该发生。添加'type =“按钮”'是修复它的正确方法。请参阅http://stackoverflow.com/a/932657/340290 – manikanta