所以,我有搜索wtform,其中一个字段用select2表示。它通过ajax依赖于另一个选择字段加载。加载步骤正常。但是,当我提交我的表单,并用结果数据接收回来时,我无法将所选值设置回select2字段,因为我只有id,而且,据我所知,initSelection的回调方法需要id和text。或者,也许我做错了。
这是选择字段
$("#source").select2({
placeholder: "Выберите источник",
initSelection: function(element, callback){
callback({id: element.val(), text:element.val()})
},
query: function(query){
query.callback(source_data)
}
})
我想要下面的内容。具有此ID的数据已存在于select2中,唯一的问题是如何选择它。
callback({id: element.val())
答案 0 :(得分:1)
这就是我能够解决这个问题的方法:
//sample preloaded select data
var preload_data = [{id: '1', text:'<span id="user1">John</span>'},{id: '2', text:'<span id="user2">Tim</span>'}, {id: '3', text:'<span id="user3">George</span>'}]
//the initSelection method
initSelection : function (element, callback) {
var data = [];
var lookup = {};
for (var i = 0, len = preload_data.length; i < len; i++) {
lookup[preload_data[i].id] = preload_data[i];
}
$(element.val().split(",")).each(function() {
data.push({id: this, text: lookup[this].text});
});
callback(data);
}