Select2 4.0 - 创建后推送新条目

时间:2015-03-15 08:17:39

标签: javascript jquery-select2 jquery-select2-4

我一直在使用Select2 4.0.0-rc.1几周(使用ajax适配器),我正试图找到一种方法来推送"推送"初始化后的数据。

在下拉列表中,我可以选择

  • 在列表中选择一个条目(使用ajax
  • 添加免费条目(使用createTag
  • 添加新条目

如果我选择"添加新条目",我可以填写表格,保存后,新数据必须显示为选定条目。

如果我使用select2_existing.select2( { data: data } ).val( 4 );推送数据,则可以使用,但ajax调用不再有效。

我必须

  1. destroy select2
  2. 重新创建
  3. 然后,这将允许我使用我的新数据和ajax适配器。

    可以在没有create-> data-> destroy->创建周期的情况下执行此操作?

1 个答案:

答案 0 :(得分:19)

您应该可以通过创建一个包含您要显示的信息的新<option selected>标记来推送新选择的选项。

<option value="id" selected="selected">text</option>

将此<option>附加到原始<select>后,您将需要触发change事件,以便Select2(和其他组件)知道值已更改。< / p>

$element.trigger("change");

所以在JavaScript中将它们放在一起

var $element = $("select"); // the element that Select2 is initialized on

var $option = $("<option selected></option>"); // the new base option
$option.val(newOption.id); // set the id
$option.text(newOption.text); // set the text

$element.append($option); // add it to the list of selections
$element.trigger("change"); // tell Select2 to update