2012-02-14 145 views
5

雖然聽起來像一個傻瓜的風險 - 在我們公司的HTML(HTML5)的設計師不斷遞過來的功能嘲笑與沒有屬性的表單標籤...沒有屬性的HTML表單標籤 - 沒有任何理由?

<form> 
    <label for="name">Name</label> 
    <input type="text" id="name" name="name"> 
</form> 

每次看到這個我失去希望人性多一點。但是我不知道是否應該把它們全部整理起來,然後講解它們的形式屬性以及我們爲什麼需要它們,因爲我似乎找不到任何說明它們是「需要」的文檔。默認情況下,我知道表單標籤會假設一些東西,比如方法和動作,但我更喜歡那些屬性已經存在而不是省略。這是自從它開始以來一直在寫HTML的我們這些人總是如此。

所以一般的問題是 - 使用沒有屬性的表單標籤是否有任何錯誤(但是你想定義)?如果您的預期操作是當前頁面並且獲得了預期的方法,那麼包含哪些參數與排除默認屬性有什麼關係?或者給它分配一個你不使用的ID?

我希望看到這一點:

<form id="search_form" action="" method="get"> 
    <label for="name">Name</label> 
    <input type="text" id="name" name="name"> 
</form> 

回答

8

這將取決於您要驗證對DOCTYPE。例如,在HTML 4.01 Transitional and Strict中,action屬性是必需的,而method屬性是可選的。

在HTML 5中,這兩個屬性都是可選的。

+0

這並不是很難找到,但很難找到任何提及表單標籤是否可以完全清空的內容。回到當天,名稱已被棄用,表單標籤和id需要驗證。現在我沒有看到任何特別的說明應該在那裏。 – 2012-02-14 22:02:02

+3

@KaiQing,只需使用http://validator.w3.org/ – 2012-02-14 22:03:03

1

這似乎是由HTML 4標準的要求採取行動。

action  %URI;   #REQUIRED 

http://www.w3.org/TR/html4/interact/forms.html

+0

但是,大多數瀏覽器都會很樂意將該值默認爲當前URL(假設爲怪異模式)。 – Oded 2012-02-14 21:51:17

+0

確實如此,但是從技術上來說,對於html來驗證這應該是一個空行爲,而不是根本不行動。 – 2012-02-14 21:52:52

+0

是的,假設正確的DOCTYPE;) – Oded 2012-02-14 21:54:09

3

窗體上的不具有idaction屬性的最大的問題是,如果你在頁面上不止一種形式是很難說哪一個被稱爲 - 在任一客戶端服務器碼。

正如詹姆斯蒙塔涅提到了his answer爲HTML 4.01過渡是必需的action屬性。

作爲一般問題,我個人總是會對id,actionmethod進行明確的說明 - 將這些重要屬性保留在開放中,並表明它們未被遺忘。

+0

這幾乎是我對這個問題的看法。我喜歡宣佈它們,因爲這樣做是有道理的 - 因爲缺乏更好的說法。當他們離開時,我不知道是不是因爲他們認爲這是正確的做法,或者他們認爲我會用正確的信息填寫它。但是我們不聘請HTML人員留下漏洞並需要全面審計。否則,我們只會自己做,並節省一些時間。 – 2012-02-14 22:05:14

+2

@KaiQing - 如果這是你的要求,請告訴他們。 – Oded 2012-02-14 22:06:53

+1

真的 - 在這篇文章中,我真正需要的是某種文檔,說明表單標籤實際上需要一些東西。否則,我的論點僅僅是意見或偏好。在這種情況下,它就是這樣。表單將不提供任何屬性。 – 2012-02-14 22:11:15

相關問題