无需JS初始化的可搜索选择输入

时间:2020-02-09 10:12:17

标签: javascript jquery ajax jquery-select2

我需要一个可搜索的选择输入,不需要在JS中初始化。我在网站上使用Ajax,所以您不知道呼叫前有多少选择项及其ID,因此可以使用data-list解决方案,但用户不应发送键入的输入,这应该可以工作例如select输入,其中有一个id和一个定义的标签,将显示标签并发送id。你能帮助我吗?我发现的唯一解决方案需要这样的JS初始化:

$(".js-example-disabled").select2();

但是我们不知道AJAX调用之前的id,也不知道我们需要处理的选择输入的数量。

1 个答案:

答案 0 :(得分:1)

您可以在AJAX调用的success处理程序中构建自己的select元素。然后,将其添加到主体后,请使用.select2()对其进行初始化。这里唯一要考虑的是文档中的位置。

function dynamicSelect2(url, placement) {
  $.ajax({
    url: url,
    success: function(data) {
      var $select = $('<select></select>');
      $.each(data, function(i, item) {
        $select.append(`<option value="${item}">${item}</option>`);
      });
      $select.appendTo(placement);
      $select.select2();
    })
  });
}

我将其包装在一个函数中,以便您可以动态更改数据端点和在体内的位置。

dynamicSelect2('yourdata', document.body);