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


当前回答

这个问题的最佳答案是:

$("#comboboxid").val(yourvalue).trigger("chosen:updated");

e.g:

$("#CityID").val(20).trigger("chosen:updated");

or

$("#CityID").val("chicago").trigger("chosen:updated");

其他回答

如果你只需要设置一个下拉列表的值,那么最好的方法是

$("#ID").val("2");

如果你必须在更新下拉列表值后触发任何脚本,比如如果你在下拉列表上设置任何onChange事件,并且你想在更新下拉列表后运行这个,那么你需要像这样使用

$("#ID").val("2").change();

//Html下拉列表的格式。

<select id="MyDropDownList">
<option value=test1 selected>test1</option>
<option value=test2>test2</option>
<option value=test3>test3</option>
<option value=test4>test4</option>

//如果你想使用javascript将选中的Item更改为test2。试试这个。 //设置你想要选择的下一个选项

var NewOprionValue = "Test2"

        var RemoveSelected = $("#MyDropDownList")[0].innerHTML.replace('selected', '');
        var ChangeSelected = RemoveSelected.replace(NewOption, NewOption + 'selected>');
        $('#MyDropDownList').html(ChangeSelected);

正如@Nick Berardi所建议的,如果你更改的值没有反映在UI前端,尝试:

$("#mydropdownlist").val("thevalue").change();

有很多方法可以做到这一点。以下是其中一些:

$("._statusDDL").val('2');

OR

$('select').prop('selectedIndex', 3);

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

    $.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);允许您控制组合是否具有有效值。

希望能对大家有所帮助。

对不起,我的英语不好。