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


当前回答

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

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

其他回答

这个问题的最佳答案是:

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

e.g:

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

or

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

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

/*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");

对于使用Bootstrap的人,使用$(#elementId').selectpicker('val','elementValue')而不是$('#elementId').val('elementValue'),因为后者不会更新UI中的值。

注意:即使.change()函数也可以工作,正如上面在一些回答中所建议的那样,但它会触发$('#elementId').change(function(){//do something})函数。

只是把这个贴出来,以便将来有人引用这个帖子。

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

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

使用上面突出显示的/选中的答案对我有用……这里有一个小见解。 我在获取URL上作弊了一点,但基本上我是在Javascript中定义URL,然后通过jquery回答上面的设置:

<select id="select" onChange="window.location.href=this.value">
    <option value="">Select a task </option>
    <option value="http://127.0.0.1:5000/choose_form/1">Task 1</option>
    <option value="http://127.0.0.1:5000/choose_form/2">Task 2</option>
    <option value="http://127.0.0.1:5000/choose_form/3">Task 3</option>
    <option value="http://127.0.0.1:5000/choose_form/4">Task 4</option>
    <option value="http://127.0.0.1:5000/choose_form/5">Task 5</option>
    <option value="http://127.0.0.1:5000/choose_form/6">Task 6</option>
    <option value="http://127.0.0.1:5000/choose_form/7">Task 7</option>
    <option value="http://127.0.0.1:5000/choose_form/8">Task 8</option>
</select>
<script>
    var pathArray = window.location.pathname.split( '/' );
    var selectedItem = "http://127.0.0.1:5000/" + pathArray[1] + "/" + pathArray[2];
    var trimmedItem = selectedItem.trim();
    $("#select").val(trimmedItem);
</script>