正如问题所说,我如何使用jQuery设置下拉列表控件的值?


当前回答

设置值并更新下拉列表事件

$("#id").val("1234").change();

其他回答

如果你的下拉菜单是Asp。净下拉,然后下面的代码将工作正常,

 $("#<%=DropDownName.ClientID%>")[0].selectedIndex=0;

但如果你的下拉是HTML下拉,那么这段代码将工作。

 $("#DropDownName")[0].selectedIndex=0;
$("#mydropdownlist").val("thevalue");

只要确保选项标签中的值与val方法中的值匹配即可。

我认为这可能会有所帮助:

    $.getJSON('<%= Url.Action("GetDepartment") %>', 
              { coDepartment: paramDepartment },
              function(data) {
                    $(".autoCompleteDepartment").empty();
                    $(".autoCompleteDepartment").append($("<option />").val(-1));
                    $.each(data, function() {
                        $(".autoCompleteDepartment").append($("<option />").val(this.CodDepartment).text(this.DepartmentName));
                    });
                    $(".autoCompleteDepartment").val(-1);                                       
              }  
             );

如果您这样做,您将添加一个没有文本的元素。因此,当你点击de combo时,它不会出现,但值-1你添加了一个稍后选择$(".autoCompleteDepartment").val(-1);允许您控制组合是否具有有效值。

希望能对大家有所帮助。

对不起,我的英语不好。

下面是一个快速设置所选选项的函数:

function SetSelected(elem, val){
        $('#'+elem+' option').each(function(i,d){
        //  console.log('searching match for '+ elem + '  ' + d.value + ' equal to '+ val);
            if($.trim(d.value).toLowerCase() == $.trim(val).toLowerCase()){
        //      console.log('found match for '+ elem + '  ' + d.value);
                $('#'+elem).prop('selectedIndex', i);
            }
        });
    }

使用参数element id和所选值调用此函数;是这样的:

SetSelected('selectID','some option');

当有很多选择选项需要设置时,它很有用。

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

$("#mydropdownlist").attr('selectedIndex', 0);

这将把它设置为下拉列表中的第一个值。

编辑: 我上面的方法过去很管用。但现在似乎不再是了。

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

$("#mydropdownlist").get(0).selectedIndex = index_here;