各id
を個別に使用せずに、1回のクリックですべての値を選択解除します。
私はしばらくいじりましたが、これは最初の値のみを選択解除します。助言がありますか?
これは私が選択を解除する方法です:
$( "#mybutton" ).click(function() {
$("select").select2('val', '')
});
代わりにこれを試してください:
$('select').select2({
placeholder: "select me"
});
$("#mybutton").click(function () {
$("select").each(function () { //added a each loop here
$(this).select2('val', '')
});
});
デモ ここ
$("select").val('').change();
それだけです:) http://jsfiddle.net/6hZFU/78/
説明:入力の値を変更した場合、またはJavaScriptブラウザーを介して選択した場合、その変更に対してchangeイベントは発生しません(つまり、仕様のとおりです)。
変更イベントを起動すると、select2が追いつき、selectの新しい値を反映します。
Select2バージョン4.0を使用している場合、新しい構文を使用する必要があります。
$("select").val(null).trigger("change");
$('#destinatariMail').val("-1").trigger("change");
この方法では、「オンザフライ」で挿入されたタグ付きオプションも選択解除します。
誰かがSelect2ネイティブ構成ソリューションに興味がある場合(別のボタンはありません)。
執筆時点(select2 v 4)では、Select2はボタンを追加して複数選択をクリアできます。プレースホルダーを表示するための<option></option>
回避策は不要です。
$('#my-select').select2({
placeholder: "Select something",
allowClear: true
});
ドキュメント から。
上記のソリューションを試しましたが、うまくいきませんでした。
これは一種のハックであり、trigger change.
$("select").select2('destroy').val("").select2();
または
$("select").each(function () { //added a each loop here
$(this).select2('destroy').val("").select2();
});
これを試してください、それは完全に機能しています。
$('#form-search-amenities > option').prop("selected", false);
$("li.select2-selection__choice").remove();
#form-search-amenities
は、あなたの<select>
落ちる。
Select2 v4 APIを使用して複数の複数選択ドロップダウンをクリアする場合、次の簡単な方法があります。
$("li.select2-selection__choice").remove();
$(".select2").each(function() { $(this).val([]); });
ドロップダウンに焦点を当てず、「select」要素と「Select2」要素の両方をきれいにします;)