2012-12-28 129 views
0

可能重複:
How do I select an option select and set it?如何使用jQuery更改選擇框的選定選項?

我有如下定義的選擇框。

<select @string.Format("id={0}", Model.FieldId) name="Id1" onclick="LoadIds('@string.Format("{0}", Model.FieldId)')"> 
    <option @string.Format("value={0}", row.ID1) selected="selected">@row.ID1</option> 
</select> 

選擇框的所有選項都加載在onclick事件中。當我啓動該頁面時,它將在選擇框中顯示適當的值(如所選),並且這些選項也可以從「LoadIds」函數正常加載。現在我想從下拉列表中選擇一個不同的值,並將新值設置爲選中狀態。我想我需要實施onchange事件。我的問題是如何從舊選項中刪除選定的屬性,並將其添加到新選定的選項?

+0

*「我想從下拉列表中選擇不同的值」*您的意思是用戶選擇不同的值嗎?它會自動被選中,你不必改變屬性。或者我錯過了什麼? –

+0

是的,當用戶從下拉列表中選擇一個不同的值時,新值出現並立即變回到先前的舊值。我不確定它是否與在html表上應用的jQuery數據表有關。我有一個html表格中的選擇框,我通過在$(document).ready函數中應用.dataTable()擴展名將其顯示爲jquery datatable。謝謝。 – Jyina

+0

請創建一個http://jsfiddle.net/演示,這似乎是一個相當奇怪的情況。 –

回答

2

在select上使用jQuery的.val('valueHere')將使下拉中的活動項目變爲傳遞的值(如果可用)。

<select id="a"> 
     <option val="1">One</option> 
     <option selected="selected" val="2">Two</option> 
     <option val="3">Three</option> 
</select> 

jQuery的

$('#a').val('1');​ 

selected屬性仍然會出現在二,但不會被選中。您不需要刪除該屬性,僅用於默認選擇。如果你真的想看到.prop()

警告使用上selected.removeProp()在評論&指出jQuery的文檔

注意:不要使用此方法來移除固有特性,如檢查,禁用或選擇。這將完全刪除該屬性,一旦刪除,不能再添加到元素。使用.prop()將這些屬性設置爲false。

+1

只是提到prop()應該是好的,因爲如果他們在一個屬性上使用.removeProp(),他們將不再使用該屬性......來自jQuery文檔'這將完全刪除屬性,並且一旦刪除,不能再次添加到元素。使用.prop()將這些屬性設置爲false。 –

+0

良好的捕獲,我沒有意識到這一點。 – ryan