2012-07-29 64 views

回答

10

不按照規範:

一些元素,並不是所有的形式相關,被歸類爲 貼標籤的元素。這些元素可以與 標籤元素相關聯。

「按鈕」,「輸入」(如果該類型屬性不是在隱藏狀態)「密鑰生成」 「米」「輸出」,「進步」,「選擇」,「文本區域」

http://www.w3.org/TR/html5/forms.html#category-label

參見:可被指定

for屬性來指示與 表單控件,其標題是要關聯。如果指定了屬性,則該屬性的值必須是與標籤元素相同的文檔中的一個可插入元素的ID。如果指定了屬性,並且 在Document中有一個元素的ID等於值 for屬性,並且第一個這樣的元素是可標記元素 那麼該元素是標籤元素的標籤控件。

http://www.w3.org/TR/html5/the-label-element.html#attr-label-for

我認爲這個問題提出了一個有效的使用案例。我不知道有什麼推薦的模式是這樣的情景,雖然ARIA屬性可能有助於使標記更容易:

https://developer.mozilla.org/en/Accessibility/ARIA/forms/Basic_form_hints https://developer.mozilla.org/Special:Tags?tag=ARIA

+0

從HTML5規範擴展:[標籤元素的for屬性必須引用一個窗體控件](http://www.w3.org /TR/html-markup/label.html#label) – steveax 2012-07-29 01:39:19

+0

謝謝Tim,這是一個有趣的發現 – Thomas 2012-07-29 01:40:40

+0

@steveax你有更新的鏈接嗎? – 2017-11-04 22:51:47

2

蒂姆指出這是不可能的本地做,然而,你可以模擬一點點的JavaScript

jQuery(document).delegate('[for]','click',function(e){ 
    var targetEl = jQuery('#'+jQuery(this).attr('for')); 
    if(targetEl.is('div.your-custom-dropdown-class')) { //if targetEl is one of your dropdowns 
     e.preventDefault(); 
     targetEl.trigger('click'); //open the drop down 
    } 
});