Javascript 选择2仅按id设置所选值
我有一个搜索表单,其中一个字段用select2表示。它通过ajax依赖于另一个select字段进行加载。加载步骤工作正常。但是,当我提交表单并将其与结果数据一起接收时,我无法将selected value设置回select2字段,因为我只有id,而且据我所知,initSelection的回调方法需要id和文本。或者,也许我做错了什么 这里是选择字段Javascript 选择2仅按id设置所选值,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我有一个搜索表单,其中一个字段用select2表示。它通过ajax依赖于另一个select字段进行加载。加载步骤工作正常。但是,当我提交表单并将其与结果数据一起接收时,我无法将selected value设置回select2字段,因为我只有id,而且据我所知,initSelection的回调方法需要id和文本。或者,也许我做错了什么 这里是选择字段 $("#source").select2({ placeholder: "Выберите источник", initSelec
$("#source").select2({
placeholder: "Выберите источник",
initSelection: function(element, callback){
callback({id: element.val(), text:element.val()})
},
query: function(query){
query.callback(source_data)
}
})
我想要下面这样的东西。select2中已经存在具有此类id的数据,唯一的问题是如何将其选中
callback({id: element.val())
我就是这样解决这个问题的:
//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);
}
//样本预加载选择数据
var preload_data=[{id:'1',text:'John'},{id:'2',text:'Tim'},{id:'3',text:'George'}]
//初始选择方法
initSelection:函数(元素,回调){
var数据=[];
var查找={};
对于(变量i=0,len=preload_data.length;i
我就是这样解决这个问题的:
//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);
}
//样本预加载选择数据
var preload_data=[{id:'1',text:'John'},{id:'2',text:'Tim'},{id:'3',text:'George'}]
//初始选择方法
initSelection:函数(元素,回调){
var数据=[];
var查找={};
对于(变量i=0,len=preload_data.length;i
element.val()
仍应在回调函数的作用域中,因此您应该能够将其作为参数传递,不是吗?并删除()?callback({id:element.val)element.val()给了我id,如果我在callback方法中只使用它,我将得到“未定义”的文本作为所选值。使用$(element.select2('val',element.val());尝试过。首先我不能调用select2(“val”,value)未定义initSelection。我认为这是因为我正在触发此select上的事件以实现Dependent one。即使我删除触发器,它也不起作用。element.val()
仍应在回调函数的作用域中,因此您应该能够将其作为参数传递,不是吗?并删除()?回调({id:element.val)element.val()给我id,如果我在回调方法中只使用它,我将得到“未定义”文本作为所选值。使用$(element.select2('val',element.val());尝试。首先,我不能调用select2(“val”,value)没有定义initSelection。我想这是因为我正在触发这个select上的事件来实现Dependent one。即使我删除触发器,它也不会工作。