簡単な質問ですが、まだ答えはありません。 Select2ドロップダウンリストのselectedIndexを序数で設定することはできますか?私は、セレクト2バージョン3.5.2を使用してのような値を使用して、選択したアイテムを持っていることが非常に簡単見つけるよ:javascriptまたはjQueryのselect2(version 3.5)ドロップダウンリストのselectedindexを設定する方法
$(elem).select2('val','my value',false);
しかし、序を通じて選択をしようと、私を完全にエスケープします。 Selectセレクトして、通常のドロップダウンで動作しますが、ないもののいくつかの例:
$(elem + " option")[1].selected = true; //no worky
$(elem + " option:eq(1)").attr("selected", "selected"); //no worky
$(elem).prop({ selectedIndex: 1 });//no worky
私はSelectセレクトは、最初のオプションを使用すると、これは、最初のものではありませんデフォルトの選択を持つことである必要がある理由(インデックス:0 )ヒントを埋めるために、私はIndex:1にデフォルト設定したい(そしてそれらは多くの異なる値を持つことができるので、値を介して選択したオプションを設定することはできません - 序数でなければなりません)
UPDATE : 問題はここにある可能性があります(すべての選択項目と必要な空白オプションの値が空です) - 混乱する可能性があります。
<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の(多くの更新すべき古いコードの)を設定するとよいでしょう を - 私は、Selectセレクト
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(" option:eq(1) ")。prop(" selected "、" selected ");' – guradio
残念ながらこれも無視されます。 Select2ではなく、普通の古いselectドロップダウンでうまくいきます。私は、バージョン4.0には、インデックスでオプションを選択する手段がないことに気付きました(少なくともドキュメントには含まれていません)。 – MC9000
元のselect要素の値を変更した場合は、Select2コントロールを更新するためにchangeイベントをトリガーする必要があります。 '$(elem).prop( 'selectedIndex'、1).change();'を試してください。 –