今天在寫一個小例子時無意間發現button標籤會提交表單, 很是不解. 後來換成input type="button"就沒有這個問題, 於是上網查了下,結合各位網友和w3c的說法, 總結如下:
未設置type屬性時, <button>標籤在IE中被當作是一個按鈕,但在其它瀏覽器中會被當作submit, 因此應始終爲button設置type。設置type後, <button>在所有瀏覽器中都是一個普通的按鈕.
如果在 HTML 表單中使用 button 元素,不同的瀏覽器會提交不同的值。IE將提交 <button> 與 <button/> 之間的文本,而其他瀏覽器將提交 value 屬性的內容。因此,請在 HTML 表單中使用 input 元素來創建按鈕。
==============================
附:W3C對button的完整解釋
http://www.w3school.com.cn/tags/tag_button.asp
HTML <button> 標籤
定義和用法
<button> 標籤定義一個按鈕。
在 button 元素內部,您可以放置內容,比如文本或圖像。這是該元素與使用 input 元素創建的按鈕之間的不同之處。
<button> 控件 與 <input type="button"> 相比,提供了更爲強大的功能和更豐富的內容。<button> 與 </button> 標籤之間的所有內容都是按鈕的內容,其中包括任何可接受的正文內容,比如文本或多媒體內容。例如,我們可以在按鈕中包括一個圖像和相關的文本,用它們在按鈕中創建一個吸引人的標記圖像。
唯一禁止使用的元素是圖像映射,因爲它對鼠標和鍵盤敏感的動作會干擾表單按鈕的行爲。
請始終爲按鈕規定 type 屬性。Internet Explorer 的默認類型是 "button",而其他瀏覽器中(包括 W3C 規範)的默認值是 "submit"。
實例
以下代碼標記了一個按鈕:
<button type="button">Click Me!</button>
瀏覽器支持
所有主流瀏覽器都支持 <button> 標籤。
重要事項:如果在 HTML 表單中使用 button 元素,不同的瀏覽器會提交不同的值。Internet Explorer 將提交 <button> 與 <button/> 之間的文本,而其他瀏覽器將提交 value 屬性的內容。請在 HTML 表單中使用 input 元素來創建按鈕。