Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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 为multiselect设置Select2搜索表单上的值_Javascript_Jquery_Json - Fatal编程技术网

Javascript 为multiselect设置Select2搜索表单上的值

Javascript 为multiselect设置Select2搜索表单上的值,javascript,jquery,json,Javascript,Jquery,Json,我有一个json字符串,希望添加到select2 multiselect搜索输入中。我得到的地图错误如下 无法读取未定义的属性“map” 控制台日志中的json字段为 [{"id":1,"name":"Test Test"},{"id":2,"name":"Billy A"}] js代码是 var employees = $(this).attr('data-employees'); console.log(employees); $("select[name='em

我有一个json字符串,希望添加到select2 multiselect搜索输入中。我得到的地图错误如下

无法读取未定义的属性“map”

控制台日志中的json字段为

[{"id":1,"name":"Test Test"},{"id":2,"name":"Billy A"}]
js代码是

   var employees = $(this).attr('data-employees'); 
    console.log(employees);

    $("select[name='employees[]']").val(employees.data.map(function(x) {
   return x.id; })); // Set the selected data before show it.
            $('select').select2()
HTML


正如我所看到的,您是从元素属性获取此数组的,如果是,可能console.log是一个字符串,请尝试以下操作:

var employees = JSON.parse( $(this).attr('data-employees') ); 
console.log(employees);

$('select').select2(); // init with select2
$("select[name='employees[]']").val(employees.map(function(x) {
   return x.id;  // Set the selected data before show it.
}))
.trigger("change");
如果你看到这个

var employees=JSON.parse“[{id:1,name:Test},{id:2,name:Billy A}]”; console.log“整个数组:”,employees;//您有一个有效的数组 var id=employees.mapfunctionx{return x.id;}
console.log'Employee id only:',id;如果employees的cosole.log为您提供了问题中提供的对象数组,只需删除数据并按此方式执行即可。valemployees.mapfunctionx{…删除数据后,i get employees.map不再是一个函数不再获得错误。此问题的console.log返回[Object,Object]。模式选择字段为空,没有值。我已编辑了我的答案。如果您在console.log中也看到了这一点,那么您的问题就在其他地方;].True。我已看到您的结果。我的问题是在其他地方将数据放在选择框中。我猜在$'select'行上有些内容不完整。请选择2尝试使用.selec对其进行初始化t2首先,然后选择所选值,请参阅代码A。这就是我可以帮助您的
var employees = JSON.parse( $(this).attr('data-employees') ); 
console.log(employees);

$('select').select2(); // init with select2
$("select[name='employees[]']").val(employees.map(function(x) {
   return x.id;  // Set the selected data before show it.
}))
.trigger("change");