1. ホーム
  2. jquery

[解決済み】select2の値をリセットしてプレースホルダーを表示する。

2022-04-04 09:52:02

質問

select2による値のリセット時にプレースホルダーを設定するにはどうしたらよいですか?私の例では、場所や等級のセレクトボックスがクリックされ、私のselect2に値がある場合、select2の値はリセットされ、デフォルトのプレースホルダーが表示されるはずです。このスクリプトは値をリセットしますが、プレースホルダーは表示されません。

$("#locations, #grade ").change(function() {
   $('#e6').select2('data', {
     placeholder: "Studiengang wählen",
     id: null,
     text: ''
   });
});

$("#e6").select2({
   placeholder: "Studiengang wählen",
   width: 'resolve',
   id: function(e) {
     return e.subject;
   },
   minimumInputLength: 2,
   ajax: {
     url: "index.php?option=com_unis&task=search.locator&tmpl=component&<?php echo JSession::getFormToken() ?>=1",
     dataType: 'json',
     data: function(term, page) {
       return {
         q: term, // search term
         g: $('#grade option:selected').val(),
         o: $('#locations option:selected').val()
       };
     },
     results: function(data, page) {
       return {
         results: data
       };
     }
   },
   formatResult: subjectFormatResult,
   formatSelection: subjectFormatSelection,
   dropdownCssClass: "bigdrop",
   escapeMarkup: function(m) {
     return m;
   }
});

解決方法は?

select2 を次のように定義する必要があります。

$("#customers_select").select2({
    placeholder: "Select a customer",
    initSelection: function(element, callback) {                   
    }
});

セレクト2をリセットする場合

$("#customers_select").select2("val", "");