web-dev-qa-db-ja.com

Select2はすべての値の選択を解除します

idを個別に使用せずに、1回のクリックですべての値を選択解除します。

私はしばらくいじりましたが、これは最初の値のみを選択解除します。助言がありますか?

これは私が選択を解除する方法です:

$( "#mybutton" ).click(function() {    
   $("select").select2('val', '')
});

http://jsfiddle.net/6hZFU/75/

31
Jaanus

代わりにこれを試してください:

$('select').select2({
    placeholder: "select me"
});

$("#mybutton").click(function () {
    $("select").each(function () { //added a each loop here
        $(this).select2('val', '')
    });
});

デモ ここ

24
Sergio
$("select").val('').change();

それだけです:) http://jsfiddle.net/6hZFU/78/

説明:入力の値を変更した場合、またはJavaScriptブラウザーを介して選択した場合、その変更に対してchangeイベントは発生しません(つまり、仕様のとおりです)。

変更イベントを起動すると、select2が追いつき、selectの新しい値を反映します。

47
Ivan Ivanić

Select2バージョン4.0を使用している場合、新しい構文を使用する必要があります。

$("select").val(null).trigger("change");
15
Steve
$('#destinatariMail').val("-1").trigger("change");

この方法では、「オンザフライ」で挿入されたタグ付きオプションも選択解除します。

2
greg

誰かがSelect2ネイティブ構成ソリューションに興味がある場合(別のボタンはありません)。

執筆時点(select2 v 4)では、Select2はボタンを追加して複数選択をクリアできます。プレースホルダーを表示するための<option></option>回避策は不要です。

$('#my-select').select2({
    placeholder: "Select something",
    allowClear: true
});

ドキュメント から。

0
Roman Susi

上記のソリューションを試しましたが、うまくいきませんでした。

これは一種のハックであり、trigger change.

$("select").select2('destroy').val("").select2();

または

$("select").each(function () { //added a each loop here
        $(this).select2('destroy').val("").select2();
});
0
tech_boy

これを試してください、それは完全に機能しています。

$('#form-search-amenities > option').prop("selected", false);
$("li.select2-selection__choice").remove();

#form-search-amenitiesは、あなたの<select> 落ちる。

0
Munawar Ali

Select2 v4 APIを使用して複数の複数選択ドロップダウンをクリアする場合、次の簡単な方法があります。

$("li.select2-selection__choice").remove();
$(".select2").each(function() { $(this).val([]); });

ドロップダウンに焦点を当てず、「select」要素と「Select2」要素の両方をきれいにします;)

0
Bulzib Rugulus