使用jQuery设置下拉列表的选定索引
我在使用jQuery设置下拉列表的选定索引,jquery,ajax,drop-down-menu,reset,Jquery,Ajax,Drop Down Menu,Reset,我在SO上看到过关于这个主题的其他帖子,但我没有找到一个解决方案,即使用jQuery设置select 我有一个下拉列表,如下所示: <select type="select" id="docsList" name="docsList"> <option id="defaultListItem" value="0">Select a Document...</option> <option value="38">Document
SO
上看到过关于这个主题的其他帖子,但我没有找到一个解决方案,即使用jQuery
设置select
我有一个下拉列表,如下所示:
<select type="select" id="docsList" name="docsList">
<option id="defaultListItem" value="0">Select a Document...</option>
<option value="38">Document 1</option>
<option value="35">Document 2</option>
<option value="46">Document 3</option>
<option value="45">Document 4</option>
</select>
。。。还有其他一些
我开始认为这段代码很好,而且我还有其他一些东西在阻止重置下拉列表。你把事情复杂化了。您不需要jQuery来获取/设置
的selectedIndex
$('#docsList').get(0).selectedIndex = 0;
设置
的值时,在
上调用.val()
,而不是在其
上调用
$('#docsList').val('0');
您需要$('select#docsList').val('0')代码>参见以下示例:$(“#docsList option[value=0]”)。attr('selected','selected')代码>
这将把value属性设置为0的
设置为所选选项。马特的答案有一个小缺陷:
$('#docsList').val('0');
当不处于兼容模式时,上述代码在IE 9中不起作用。以下是我在跨浏览器中使用的:
document.getElementById('docsList').selectedIndex = 0;
不过,谢谢你给我指出了正确的方向。其他所有的方法也都能奏效,但马特的解释和最简单的解决方案让我感到很荣幸!谢谢大家!好文章,还应该注意,selectedIndex
是一个属性。@GoldBishop谢谢。为什么要指出这一点?我看不出这有什么好处。也许你应该详细说明一下,因为JQuery/JS可以让你做任何你想做的事情。尽管它看起来很好,但当您尝试使用赋值时,在您尝试并调试它之前,它可能并不明显。当然是个人经验。@GuyCohen您确定选择器中的id与select元素的id匹配吗?您确定DOM完全加载后代码正在运行吗?您好,很抱歉,我无法尽快回复。我在JSFIDLE中测试了您的样本。。。。现在我知道为什么了——当我将值设置为1时(只是为了看看是否可以选择第一项以外的值),我没有将值1添加到第二项。在任何情况下,我的工作示例如下:$('#mylistname').prop('selectedIndex',1);
$(".btn-reset").click(function () {
$('#docsList').val('123er43f-12fr-7hgy-ju78-kju345uy65r3');
$('#docsList').trigger('chosen:updated');
});
$(".btn-reset").click(function () {
$('#docsList').val('123er43f-12fr-7hgy-ju78-kju345uy65r3');
$('#docsList').trigger('chosen:updated');
});