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