2013-12-16 52 views
6

以前,當我有一個單一的提交按鈕的表單時,我通常不會將type="submit"屬性放在那裏。我從來沒有觀察到這造成的問題,並認爲「提交」是按鈕的默認類型,我可以依靠這種行爲。我需要在提交按鈕上指定type =「submit」嗎?

但是,w3schools和MDN不同意我是否正確。

w3schools claims:

提示:始終指定<button>元素的類型的屬性。不同的瀏覽器可能會爲<button>元素使用不同的默認類型。

MDN claims:

  • submit:......這是默認的,如果沒有指定屬性,或者屬性被動態地改變爲空或無效值。

誰是對的,誰是錯誤的 - 根據規格和真實的瀏覽器?

回答

7

MDN在其文章底部附近有一些spec鏈接,它確認它說的是正確的:button元素的默認typesubmit

W3C HTML 4.01

type = submit|button|reset [CI]
該屬性聲明瞭按鈕的類型。可能的值:

  • submit:創建一個提交按鈕。這是默認值。
  • reset:創建一個重置按鈕。
  • button:創建一個按鈕。

W3C HTML5:當它被激活

type屬性控制按鈕的行爲。它是一個枚舉屬性。下表列出了屬性的關鍵字和狀態 - 左列中的關鍵字映射到與關鍵字相同行的第二列中單元格中的狀態。

Keyword | State   | Brief description 
--------+---------------+------------------ 
submit | Submit Button | Submits the form. 
reset | Reset Button | Resets the form. 
button | Button  | Does nothing. 

缺失值默認是提交按鈕狀態。

W3Schools說的是,您應該始終指定屬性以確保跨越瀏覽器的一致行爲。這並不意味着該屬性不能合法地被省略。

+0

* W3School所說的是,您應該始終指定屬性以確保跨瀏覽器的一致行爲。這並不意味着該屬性不能被省略。* - 嗯。我不會那麼慈善。他們聲稱*不同的瀏覽器可能會對'

+0

@Mark Amery:我最後澄清了一下。 – BoltClock

+0

[偏題]有幾個重要的人說,w3schools應該被禁止從互聯網和w3c規格應該被諮詢,而不是運動。 – SparK