Select2 4.0 - 创建后推送新条目
Select2 4.0 - Push new entry after creation
我已经使用 Select2 4.0.0-rc.1 几个星期了(使用 ajax
适配器),我正试图找到一种方法来 "push" 数据已初始化。
在下拉列表中,我可以选择
- select 列表中的条目(使用
ajax
)
- 添加一个免费条目(使用
createTag
)
- 添加新条目
如果我 select "add a new entry",我可以填写一个表格,一旦保存,新数据必须显示为 selected 条目。
如果我使用 select2_existing.select2( { data: data } ).val( 4 );
推送数据,它可以工作,但 ajax
调用不再工作。
那我得
- 摧毁select2
- 重新创建它
这将使我的新数据和 ajax
适配器正常工作。
没有create->data->destroy->create循环也能做到吗?
您应该能够通过使用您要显示的信息创建新的 <option selected>
标签来推送新的选定选项。
<option value="id" selected="selected">text</option>
将此 <option>
附加到原始 <select>
后,您将需要触发 change
事件,以便 Select2(和其他组件)知道值已更改.
$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
我已经使用 Select2 4.0.0-rc.1 几个星期了(使用 ajax
适配器),我正试图找到一种方法来 "push" 数据已初始化。
在下拉列表中,我可以选择
- select 列表中的条目(使用
ajax
) - 添加一个免费条目(使用
createTag
) - 添加新条目
如果我 select "add a new entry",我可以填写一个表格,一旦保存,新数据必须显示为 selected 条目。
如果我使用 select2_existing.select2( { data: data } ).val( 4 );
推送数据,它可以工作,但 ajax
调用不再工作。
那我得
- 摧毁select2
- 重新创建它
这将使我的新数据和 ajax
适配器正常工作。
没有create->data->destroy->create循环也能做到吗?
您应该能够通过使用您要显示的信息创建新的 <option selected>
标签来推送新的选定选项。
<option value="id" selected="selected">text</option>
将此 <option>
附加到原始 <select>
后,您将需要触发 change
事件,以便 Select2(和其他组件)知道值已更改.
$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