2012-12-28 130 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