如何使用自定义输入填充select2

时间:2019-02-25 21:29:09

标签: javascript jquery jquery-select2

我实现了一个select2下拉菜单,允许用户输入自定义输入...

$("#select").select2({
  createSearchChoice:function(term, data) {
    if ($(data).filter(function() {
      return this.text.localeCompare(term)===0;
    }).length===0)
    {return {id:term, text:term};}
  },
  multiple: false,
  selectOnBlur: true,
  data: [{id: 1, text: '1'}, {id: 2, text: '2'}, {id: 3, text: '3'}]
});

这很好,但是在某些情况下,我需要以编程方式为select2下拉菜单设置自定义值。我尝试执行以下操作...

// Doesn't work
$('#select').val('val', custom);

// Doesn't work
$('#select').val(custom);

有什么办法吗?

正在我选择的下拉列表中fiddle工作。

3 个答案:

答案 0 :(得分:1)

我发现了如何完成自己想要的事情。解决方法是...

$('#select').select2('data', {id: id, text: custom});

以下内容会将输入设置为任何值custom,而不会添加到列表本身。

这里是工作中的fiddle

答案 1 :(得分:0)

您要显示选定的值吗?如果可以的话,您可以添加

$('#select').val(custom).attr("selected", "selected").change();

答案 2 :(得分:0)

如果我没记错的话,您需要触发更改以使select2生效。

$('#select').val(custom).change();