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

    $('#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");

其他回答

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

这将删除值和最重要的是我-它也删除一个 空x键

如果你想在关闭一个模态时清除所有的select2输入,那么你可以添加一个类“select2”,并将它们都设置回它们的占位符,如下所示。

$('#myModal').on('hidden.bs.modal', function (e) {
    $(this)
        .find(".select2").select2({placeholder: "Choose an option"})
        .val('').trigger('change.select2');
});

这种一次性全部重置的方法也可以用于表单。 我使用的版本是4.0.10

我不知道是否有人经历过这种情况,但一旦代码命中触发器('change'),我的javascript就停止了,从未从触发器返回,其余的函数从未执行。

我对jquery触发器不够熟悉,不能说这是预期的。我通过将它包装在setTimeout中来解决它,这很难看,但很有效。

使用select2 3.2版本,这为我工作:

$('#select2').select2("data", "");

不需要实现initSelection

我已经阅读了所有的答案,其中很多都不赞成。

这是当前清除和设置占位符值的方法:

// Clear and put a blank select placeholder
$("#MySelect").prop('disabled', false).find("option:gt(0)").remove();