2013-03-14 56 views
1

在我所知道的,第一個選項被選中PR默認在下面HTML的所有瀏覽器:我應該明確指定默認值,即使它是第一個

<select> 
    <option>foo</option> 
    <option>bar</option> 
</select> 

但我可以指望這種行爲?或者會是更好的做法,明確指定默認值,即使它是第一個選項,即會是比較安全的地方:

<select> 
    <option selected>foo</option> 
    <option>bar</option> 
</select> 
+0

一種情況可能是當您按下後退按鈕並且瀏覽器使用舊的表單值時。但是,「選擇」可能不會生效。 – 2013-03-14 14:20:29

回答

1

HTML(5) specification不說默認選擇的選項應該是第一位的,如果沒有selected屬性存在。

選項元素的選擇是布爾狀態,最初爲false。除非另有說明,否則當創建元素時,如果元素具有選定的屬性,則必須將其選擇設置爲true。每當添加選項元素的選定屬性時,其選擇必須設置爲true。

does however say如果沒有selected值存在,那麼默認值應該是返回選擇值-1。

在獲取時,selectedIndex IDL屬性必須以樹狀順序返回選項列表中第一個選項元素的索引,該順序的選擇性設置爲true(如果有)。 如果沒有,那麼它必須返回-1。

我猜你因此應該假設第一個選項總是被選定爲默認。

0

我不認爲它很重要。只有在頂部沒有默認值的情況下。 「選擇」是如果你想改變默認選項。如果你沒有它的頂部。

像這樣:

<select> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="vw">VW</option> 
    <option value="audi" selected>Audi</option> 
</select> 
+0

你知道嗎,如果這是HTML – Muleskinner 2013-03-14 14:23:47

+0

的記錄行爲嗯,沒有抱歉。但我認爲這是一個功能,所以你不需要一直重新安排代碼。您可以在這裏閱讀更多內容:http://www.w3schools.com/tags/att_option_selected.asp – Treps 2013-03-14 14:27:16

0

在第一渲染(或當創建<select>元件或許),所述第一<option>是隱式選擇:selectedIndex返回,和selected(的第一個選項)返回真

但是,如果你改變使用JavaScript的選項,例如刪除所有的選項,並增加新的,然後selectedIndex回報-1,和selected(第一選擇)返回

當然,以上所有都假定從不使用selected="selected"屬性。

所以,如果您是動態添加選項,並且想要使用第一個是最初選定的,那麼您必須使用使用選定的屬性。

相關問題