我如何设置占位符的值重置由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) {                   
    }
});

重置select2

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

其他回答

我使用select2版本select2 4.0.5 $ (' .classToClear ') .select2 () .val(“);

不管什么时候

$('myselectdropdown').select2('val', '').trigger('change');

在三到四次触发后,我开始有一些延迟。我想是内存泄漏了。它不在我的代码中,因为如果我删除这行,我的应用程序是无延迟的。

因为我有allowClear选项设置为true,我去

$('.select2-selection__clear').trigger('mousedown');

后面可以跟着$('myselectdropdown').select2('close');事件触发器在select2 dom元素上如果你想关闭打开建议下拉列表。

使用以下命令配置select2

    $('#selectelementid').select2({
        placeholder: "Please select an agent",
        allowClear: true // This is for clear get the clear button if wanted 
    });

以及以编程方式清除选择输入

    $("#selectelementid").val("").trigger("change");
    $("#selectelementid").trigger("change");

Select2改变了API:

Select2: Select2 ("val")方法已弃用 并将在以后的Select2版本中删除。使用$element.val()代替。

现在最好的方法是:

$('#your_select_input').val('');

编辑:2016年12月意见表明,以下是更新的方式:

$('#your_select_input').val([]);

好的,所以实际的解决方案(对于一个常见的情况,你有一个“选择项目”禁用和选择的第一项),是非常简单的,实际上:

$("select.select2").trigger("reset").trigger("change")