我有一个从Ajax数组填充的select2 v4.0.0.如果我设置select2的val我可以通过javascript调试看到它已经选择了正确的项目(在我的情况下为#3),但是这没有显示在选择框中,它仍然显示占位符.

我应该看到这样的事情:

在我的表单字段中:
<input name="creditor_id" type="hidden" value="3">
<div class="form-group minimal form-gap-after">
<span class="col-xs-3 control-label minimal">
<label for="Creditor:">Creditor:</label>
</span>
<div class="col-xs-9">
<div class="input-group col-xs-8 pull-left select2-bootstrap-prepend">
<select class="creditor_select2 input-xlarge form-control minimal select2 col-xs-8">
<option></option>
</select>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我的javascript:
var initial_creditor_id = "3";
$(".creditor_select2").select2({
ajax: {
url: "/admin/api/transactions/creditorlist",
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term,
c_id: initial_creditor_id,
page: params.page
};
},
processResults: function (data, page) {
return {
results: data
};
},
cache: true
}, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用JSON数组填充select2元素; 但我无法得到它.
我有下一个数组:
data = [{"id":"Foo","text":"Foo"},{"id":"Bar","text":"Bar"}]
Run Code Online (Sandbox Code Playgroud)
我将select2初始化如下:
$("#selectElement").select2();
Run Code Online (Sandbox Code Playgroud)
我使用下一个代码填充:
$('#selectElement').select2('data', data, true);
Run Code Online (Sandbox Code Playgroud)
但不起作用,我不知道为什么.有人可以帮帮我吗?
编辑:我需要在select2的init之后填充(我从AJAX接收JSON)
我的意图是使用其他select2的AJAX搜索的JSON填充我的问题的select2.
一切都很好,除了populate(我在第一个格式的Selectiom方法中得到了这个JSON,但我不知道我可以用这个来填充第二个select2)