简单的问题,但还没有答案。 是否可以通过序号设置Select2下拉列表的selectedIndex值?我使用的是选择二版本3.5.2,并发现它很容易在使用的值选定的项目,如:如何在javascript或jQuery中设置select2(version 3.5)下拉列表的selectedindex
$(elem).select2('val','my value',false);
然而,试图通过顺序进行选择,完全脱离了我。什么与正常下拉工作,但不是选择二的一些例子:
$(elem + " option")[1].selected = true; //no worky
$(elem + " option:eq(1)").attr("selected", "selected"); //no worky
$(elem).prop({ selectedIndex: 1 });//no worky
我之所以需要这个是必须默认的选择,这不是第一位的,因为选择二使用第一个选项(索引:0 )来填写提示,所以我想默认索引:1(并且它们可以有很多不同的值,所以我不能只通过一个值来设置选定的选项 - 它必须是一个序数。 : 问题可能出在这里(对于所有选择以及所需的空选项,该值为空) - 可能会造成混淆。
<option selected="selected" value=""></option>
<option value="">All Sizes</option>
<option value="6ad0a51e-e58c-4431-914d-b3f1a6b2c08e">18in X 18in</option>
<option value="a00b492e-08fa-4824-ad86-9ffb8a510be2">9.75in X 39in</option>
<option value="423b2a4e-2876-4969-84e3-3601e3fab524">19.7in X 19.7in</option>
<option value="9d4f4f13-47f6-422c-bbaf-f0911b5c156c">12in x 36in</option>
<option value="d417f0bc-d1fe-4d6b-bf41-aa081907254c">22in X 22in</option>
<option value="d1dc3ca6-fc3c-47f8-8b71-80219c8fd98b">24in X 24in</option>
<option value="c92c91a3-dfdb-4240-83e2-c08771748e47">18in x 36in</option>
<option value="4741d76f-628f-4ca0-a871-dfe2c4986e66">19.7in X 39.4in</option>
<option value="f70791ba-c56a-403b-b23e-fb2e8869ba07">36in X 36in</option>
<option value="7f70b445-a890-4838-a9f5-4c3100643fdd">39in X 39in</option>
我会给第一个选项一个值(“所有尺寸”,“所有颜色”,“仅限于库存项目”,“仅限于销售类别”等),并将它们设置为相同的值,如“ - “从数据库中作为第一项(这样,我不需要比较)。 它仍然将是很好设置的selectedIndex(大量的旧代码的待更新) - 我会后在他们的请求选择二
UPDATE的将来版本: 这里的功能是什么样子
function setDD(elem, qs) {
var q = QueryString(qs);
if (!(typeof q === "undefined")) {
if (q === '') {
//$(elem + " option")[1].selected = true; //no worky
//$(elem + " option:eq(1)").attr("selected", "selected"); //no worky
//$(elem).prop({ selectedIndex: 1 });//no worky
//$(elem).find("option:eq(1)").prop("selected", "selected"); //no worky
//$(elem + " option:eq(1)").prop("selected", "selected"); //no worky
//$(elem).prop('selectedIndex', 1).change(); //no worky
} else {
$(elem).select2('val', q, false);
};
}; //else leave the dropdown at its default to show the hint (until user actually makes a selection)
};
'$(ELEM + “选项:EQ(1)”)。托( “选择”, “选择”);'尝试使用道具来代替:attr或类似这个'$(elem).find(“选项:eq(1)”)。prop(“selected”,“selected”);' – guradio
不幸的是,这也被忽略了。在普通的旧选择下拉菜单上效果很好,而不是在Select2上。我注意到版本4.0无法通过索引选择一个选项,至少不是在文档中。 – MC9000
如果更改原始select元素的值,则需要触发其更改事件才能更新Select2控件。尝试'$(elem).prop('selectedIndex',1).change();'。 –