如何使用jQuery设置DropDownList的值?

fle*_*esh 334 jquery drop-down-menu

正如问题所说,如何使用jQuery设置DropDownList控件的值?

Nic*_*rdi 582

$("#mydropdownlist").val("thevalue");
Run Code Online (Sandbox Code Playgroud)

只需确保options标记中的值与val方法中的值匹配.

  • 这不会触发"更改"事件. (20认同)
  • 想要重申 - 确保你设置了"value"属性,否则这个方法将不起作用.(我正在帮助向我展示这一点的人,并想知道为什么不通过下拉列表中的文本进行选择.)想要确保这一点很清楚. (3认同)
  • +1 必须调用 `$("#mycontrolId").selectmenu('refresh');` 来反映更改 (2认同)

mat*_*son 51

如果使用索引,则可以使用.attr()直接设置所选索引:

$("#mydropdownlist").attr('selectedIndex', 0);
Run Code Online (Sandbox Code Playgroud)

这会将其设置为下拉列表中的第一个值.

编辑: 我上面的方式曾经工作过.但它似乎不再存在了.

但正如Han在评论中如此愉快地指出的那样,正确的做法是:

$("#mydropdownlist").get(0).selectedIndex = index_here;
Run Code Online (Sandbox Code Playgroud)

  • 现在,这根本不起作用,因为`select`标签没有任何名为`selectedIndex`的属性.它取而代之的是DOM对象的属性.因此代码应该是:`$("#mydropdownlist").get(0).selectedIndex = index_here;` (7认同)
  • `$("#mydropdownlist").prop('selectedIndex',index_here);`也有效. (5认同)

小智 40

正如@Nick Berardi所建议的那样,如果您的更改后的值未反映在UI前端,请尝试:

$("#mydropdownlist").val("thevalue").change();
Run Code Online (Sandbox Code Playgroud)


Cly*_*yde 18

试试这个非常简单的方法:

/*make sure that value is included in the options value of the dropdownlist 
e.g. 
(<select><option value='CA'>California</option><option value='AK'>Alaska</option>      </select>)
*/

$('#mycontrolId').val(myvalue).attr("selected", "selected");
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记调用`$("#mycontrolId").selectmenu('refresh');` (2认同)

sal*_*ah9 9

如果您的下拉列表是Asp.Net下拉,那么下面的代码将正常工作,

 $("#<%=DropDownName.ClientID%>")[0].selectedIndex=0;
Run Code Online (Sandbox Code Playgroud)

但是如果你的DropDown是HTML下拉,那么这段代码就可以了.

 $("#DropDownName")[0].selectedIndex=0;
Run Code Online (Sandbox Code Playgroud)


小智 5

问题的最佳答案:

$("#comboboxid").val(yourvalue).trigger("chosen:updated");
Run Code Online (Sandbox Code Playgroud)

例如:

$("#CityID").val(20).trigger("chosen:updated");
Run Code Online (Sandbox Code Playgroud)

要么

$("#CityID").val("chicago").trigger("chosen:updated");
Run Code Online (Sandbox Code Playgroud)