2013-02-14 109 views
0

我有一個非常簡單的問題,但我無法弄清楚如何做到這一點? 在我的HTML頁面,我有一個簡單的選擇標籤:如何使用JavaScript更改選擇的選定選項?

<select id="selection-type"> 
    <option disabled="disabled">Type</option> 
    <option value="0">Tous les types</option> 
    <option value="1">Appartement</option> 
    <option value="2">Maison</option> 
    <option value="3">Terrain</option> 
</select> 

我想設置一個特定的值的動態使用JavaScript,但我只是設法改變選定的索引,而不是顯示的值。目前,我這樣做(在我的HTML頁面的頁腳部分):

<script type="text/javascript"> 
    $(document).ready(function(){ 
    document.getElementById("selection-type").selectedIndex = 2; 
}); 
</script> 

而在結果,它改變我的選擇的選擇指標,但顯示的文字不是「更新」:在值「Tous les types」停留。事實上,我想改變整個選擇,例如選定的選項而不僅僅是索引。

+0

如果你使用jquery,你已經很明顯的使用javascript,不需要編輯標籤並添加它(這是對其他編輯器的註釋) – Toping 2013-02-14 17:38:45

回答

1

它看起來像你使用jQuery。你可以使用jQuery的val方法來改變選擇框,使用您要選擇的選項的value

$(document).ready(function() { 
    $('#selection-type').val('1'); 
}); 

或你需要它在普通的JavaScript做什麼?

編輯:

是什麼瀏覽器您使用?在Chrome 24.0.1312.5中,您所做的selectedIndex實際上確實對我有用。

+0

我試過第一個解決方案,但它不起作用。我正在使用Firefox進行測試,但我的網站將成爲一個移動網站,所以如果它在Safari上運行,它將會很棒。具有selectedIndex的方法只是更改所選索引,並且不會在展開時更改select中出現的值。 – DaveLeGO 2013-02-14 23:33:53

+0

好的,你想改變一個特定選項的文本,而不是選擇框的選擇選項嗎?例如,將文本「Appartement」更改爲其他內容? – matts 2013-02-15 00:37:38

1

您是否嘗試過:

document.getElementById("selection-type").value = document.getElementById("selection-type").selectedIndex.value; 
+0

我剛剛嘗試過它,但它不適合我。 – DaveLeGO 2013-02-14 23:36:13

0

最後,我已經找到一種方法,使其工作。我還是用我的第一種方法,但我之前的$(document)執行它。就緒:

<script type="text/javascript"> 
    document.getElementById("selection-type").selectedIndex = 2; 
    $(document).ready(function() { 
     ... 
    }); 
</script> 

我不明白究竟爲什麼..但它的工作。非常感謝。

相關問題