2012-07-30 68 views
2

我有很長時間的習慣,在可能的情況下編寫HTML表單中的大部分字段時,都會使用匹配的「name」和「id」屬性。這使我可以簡化動態HTML生成,f。恩。在PHP創建一個下拉菜單有:具有匹配「名稱」和「ID」的HTML表單元素?

select("myselect", $values); 

代替:

select("myselect", "myselectId", $values) 

決策也是我的元素可立即像那些在JQuery中(用於驗證等)選擇。我知道這個解決方案有一些問題(它不適用於單選按鈕和複選框陣列 - 爲此我在我的PHP函數中加入了一個$id參數用於收音機 - 它混合了兩個用於不同目的的屬性,它可能當頁面上有多個表單時會導致問題)。

這真是壞習慣不好?我忽略了其他一些可能的負面影響嗎? 你會在我的地方做什麼?

  • 堅持這個時候它不會引起任何問題
  • 不要使用「IDS」在所有和使用jQuery的適當選擇,像$(form[name='...'] input[name='...']).somefunction()
  • 代碼中的每一個元素不同的ID?

回答

6

給一個匹配名稱和id的元素不會導致問題,所以你不必擔心它,這不是一個壞習慣。

相關事情引起問題:

  • 給予多個元素相同的ID(例如,如果你有其中每一個部件必須具有相同名稱的單選按鈕組)。
  • 給予一個元素的名稱和不同的元素匹配的ID

不要使用「IDS」在所有

如果你不給表單控件的ID,然後您不能使用for屬性將其與<label>元素關聯。支持for屬性比使表單控件成爲標籤的後代略好。由於標籤對可訪問性非常有用(它們增加了點擊目標的大小,並在控件和輸入之間給出了非視覺關聯),因此將id關閉並不是一個好主意。

+0

反過來也是如此。 :) – 2012-07-30 14:56:50

+0

@Diodeus,整個答案的對立面?這有點難以想象。 :) – bzlm 2012-07-30 15:00:39

+0

我的評論是在編輯和擴展答案之前。 :( – 2012-07-30 15:07:46