Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
使用jquery添加值以选择标记_Jquery_Jquery Select2_Select2 - Fatal编程技术网

使用jquery添加值以选择标记

使用jquery添加值以选择标记,jquery,jquery-select2,select2,Jquery,Jquery Select2,Select2,我正在使用select2插件。我正在编写应用程序的基本CRUD操作。当我尝试用所选的值重新填充select标记时,我无法理解编辑中的一件事,因为它没有显示这些值。我是这样做的 $.each(p["info"]["recievers_id"] , function(key , value){ $.each(p["users"] , function(key , nextvalue){ if (value["$id"] == nextvalue["_id"]["$id"])

我正在使用select2插件。我正在编写应用程序的基本CRUD操作。当我尝试用所选的值重新填充select标记时,我无法理解编辑中的一件事,因为它没有显示这些值。我是这样做的

$.each(p["info"]["recievers_id"] , function(key , value){
    $.each(p["users"] , function(key , nextvalue){
        if (value["$id"] == nextvalue["_id"]["$id"]) {
            myData.push({
                id: nextvalue["_id"]["$id"], 
                text: nextvalue["firstname"]
            });
        }
    });
});

$("#messageTo").select2();
$("#messageTo").select2("data", myData, true); //Build my select
$("#messageTo").trigger('change'); //*1* update the values
//If *1* doesn't works use this lines of code:
//$("#messageTo").select2('destroy');
//$("#messageTo").select2();
//$("#messageTo").select2('data', myData, true );
使用select2插件的select标记

<div class="form-group">
              <select id="messageTo" class="form-control" data-plugin="select2" multiple="multiple"
              data-placeholder="To:">

              </select>
            </div>

是不是我做错了什么。我试图显示用户在创建时选择的值

[对象]

0:对象

id:“569Dece31DF7B8416004AE3”

正文:“abc”

原型:对象

长度:1

proto:数组[0]


您可以尝试以下方法:

var myData = []; //My array of objects to populate the select
$.each(p["info"]["recievers_id"] , function(key , value){
 $.each(p["users"] , function(key , nextvalue){
    if (value["$id"] == nextvalue["_id"]["$id"]) {
        myData.push({
            id: nextvalue["_id"]["$id"], 
            text: nextvalue["firstname"]
        }); //push elements one by one           
    }
 });
});

$("#messageTo").select2();
$("#messageTo").select2("data", myData, true); //Build my select2

Working fiddle(更新):您使用的是select2的哪个版本?@Hackerman它的版本是3.4.1在代码末尾添加这一行:
$(“#messageTo”).trigger('change')@Hackerman不,那没用either@Hackerman是不是我做错了什么。我试图显示用户在创建时选择的值。它向我抛出此错误。对未使用select2的元素调用了select2(“destroy”)方法。但是id messageTo所属的标记正在使用select2 pluginI已经添加了select标记htmlNow它已经销毁了它,但是现在它抛出了这个错误select2('data')方法是在不使用select2的元素上调用的。在这一行$(“#messageTo”)。选择2('data',myData);基于这段代码,你能给我们展示一下
console.log(myData)的结果吗?看看这段代码……我使用的是与您相同的插件版本: