2013-03-06 25 views

回答

6

好像Firefox是根據實際做正確的事情W3C

如果對屬性沒有指定,但標籤元素有一個 貼標籤的元素後裔,那麼樹 中的第一個這樣的後代order是標籤元素的標籤控件。

您的標籤包裝了兩個輸入元素,因此當您單擊文本框時,收音機(樹狀順序中的第一個這樣的後代)將獲得焦點。

結果將取決於瀏覽器如何具有實現這個規則各不相同,因此要保證跨瀏覽器的結果是,你需要JavaScript才能介入。

0

做了一些挖了一圈,發現這個jsFiddle有一個jQuery解。 射擊輸入trigger.click();將在點擊文本框時選中它。

+0

請注意,此解決方案不會將輸入包裝在原始問題中的標籤標籤中,如小提琴。因此,您不能單擊文本「Other:」來選擇單選按鈕。 – 2013-05-13 08:58:23

5

MDN

許可內容:段落式內容,但沒有後代標籤要素。 除標籤控制以外,不允許使用可貼標元素。

基本上,在標籤內放入兩個輸入不是有效的標記。改變你的HTML標記,使標籤僅包裝了無線電輸入(任何文本標籤)...

<label class="radio"> 
    <input type="radio" name="requestfor" id="optionsRadios2" value="someoneelse" /> 
    Behalf of 
</label>  
<input type="text" name="behalfof" id="behalfid"/> 

...然後使用JavaScript(或在我懶的情況下,jQuery的)來選擇電臺:

$('#behalfid').click(function(){ 
    $('#optionsRadios2').trigger('click'); 
}); 

Here's the fiddle