Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择2仅按id设置所选值_Javascript_Jquery_Jquery Select2 - Fatal编程技术网

Javascript 选择2仅按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

我有一个搜索表单,其中一个字段用select2表示。它通过ajax依赖于另一个select字段进行加载。加载步骤工作正常。但是,当我提交表单并将其与结果数据一起接收时,我无法将selected value设置回select2字段,因为我只有id,而且据我所知,initSelection的回调方法需要id和文本。或者,也许我做错了什么

这里是选择字段

$("#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。即使我删除触发器,它也不会工作。