jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 使用Ajax时清除select2下拉列表的正确方法是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 select2遇到问题,在我输入一个项目并且我想再次使用相同的下拉菜单后,我似乎无法删除之前选择的项目

例如,假设我的id是“#Streamname”,我认为这会清除它:

$("#Streamname").val(null).trigger("change");

但它似乎仍然显示以前选择的项目.从查看html看来,我通过这样做蛮力:

$("#SELEct2-Streamname-container").html("");

但这似乎我没有正确使用API​​,所以我想看看是否有其他建议或我是否遗漏了一些东西.

@L_489_5@

Working Fiddle – Local Data Source

看起来清除SELEct2的正确方法是您最初建议的this answer建议.

使用Javascript

$(document).ready(function() {
  $("#Streamname").SELEct2();
  $("#Streamname").val(null).trigger("change");
});

HTML

<SELEct id="Streamname">
  <option value="AL">Alabama</option>
  <option value="CA">California</option>
  <option value="WY">Wyoming</option>
</SELEct>

更新 – 远程数据源

JSFiddle Using Remote Data

即使使用远程数据源,这仍然可以清除SELEct2输入:

$("#Streamname").val(null).trigger("change");

完整的Javascript

$(document).ready(function() {
  $("#Streamname").SELEct2({
    ajax: {
      url: "https://api.github.com/search/repositories",dataType: 'json',delay: 250,data: function(params) {
        return {
          q: params.term,// search term
          page: params.page
        };
      },processResults: function(data,params) {
        // parse the results into the format expected by SELEct2
        // since we are using custom formatTing functions we do not need to
        // alter the remote JSON data,except to inDicate that infinite
        // scrolling can be used
        params.page = params.page || 1;

        return {
          results: data.items,pagination: {
            more: (params.page * 30) < data.@R_393_10586@l_count
          }
        };
      },cache: true
    },escapeMarkup: function(markup) {
      return markup;
    },// let our custom formatter work
    minimumInputLength: 1,templateResult: formatRepo,// omitted for brevity,see the source of this page
    templateSELEction: formatRepoSELEction // omitted for brevity,see the source of this page
  });


  $("#Streamname").val(null).trigger("change");

  // For tesTing...
  $('#set-null').click(function() {
    $("#Streamname").val(null).trigger("change");
  });



});


function formatRepo(repo) {
  if (repo.loading) return repo.text;

  var markup = "<div class='SELEct2-result-repository clearfix'>" +
    "<div class='SELEct2-result-repository__avatar'><img src='" + repo.owner.avatar_url + "' /></div>" +
    "<div class='SELEct2-result-repository__Meta'>" +
    "<div class='SELEct2-result-repository__title'>" + repo.full_name + "</div>";

  if (repo.description) {
    markup += "<div class='SELEct2-result-repository__description'>" + repo.description + "</div>";
  }

  markup += "<div class='SELEct2-result-repository__statistics'>" +
    "<div class='SELEct2-result-repository__forks'><i class='fa fa-flash'></i> " + repo.forks_count + " Forks</div>" +
    "<div class='SELEct2-result-repository__stargazers'><i class='fa fa-star'></i> " + repo.stargazers_count + " Stars</div>" +
    "<div class='SELEct2-result-repository__watchers'><i class='fa fa-eye'></i> " + repo.watchers_count + " Watchers</div>" +
    "</div>" +
    "</div></div>";

  return markup;
}

function formatRepoSELEction(repo) {
  return repo.full_name || repo.text;
}

HTML

<SELEct id="Streamname">
  <option value="3620194" SELEcted="SELEcted">SELEct2/SELEct2</option>
</SELEct>

大佬总结

以上是大佬教程为你收集整理的jquery – 使用Ajax时清除select2下拉列表的正确方法是什么?全部内容,希望文章能够帮你解决jquery – 使用Ajax时清除select2下拉列表的正确方法是什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。