我如何设置占位符的值重置由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元素:

$( "#select2element" ).select2({
    placeholder: '---placeholder---',
    allowClear: true,
    minimumResultsForSearch: 5,
    width:'100%'
});

其他回答

我在这个案例中是这样做的:

  $('#select').val('');
  $('.select2.select2-container').remove();
  $('.select2').select2();

我将选择值更改为空 我删除了select2的容器 Re-call select2

您可以通过

$('#object').empty();

但它不会让你回到你的占位符。

所以这是半解

在js文件中使用这段代码

$('#id').val('1');
$('#id').trigger('change');

这是最新的select 2 api的工作片段。

重置或清除select2输入。

$("#selector").val([]).trigger('change');

i.e.

$( ".reset" ).on('click',function(){
    $(".select2input").val([]).trigger('change');
});

在使用此$("#customers_select")清除该值之前。select2(“val”,“”); 尝试将焦点设置为重置单击的任何其他控件。

这将再次显示占位符。