Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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/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
Javascript 为多个选择和允许的标记选择2个默认值_Javascript_Jquery_Html_Select2 - Fatal编程技术网

Javascript 为多个选择和允许的标记选择2个默认值

Javascript 为多个选择和允许的标记选择2个默认值,javascript,jquery,html,select2,Javascript,Jquery,Html,Select2,我有一个选择2多选选项 <select multiple name="event_type[]" class="form-control" id="selectEvents"> @foreach ($eTypes as $type) <option>{{$type}}</option> @endforeach </select> 但问题是我允许用户使用select2的tags:true选项生成选项 当我设置一个最初在ht

我有一个选择2多选选项

<select multiple name="event_type[]" class="form-control" id="selectEvents">
   @foreach ($eTypes as $type)
       <option>{{$type}}</option>
   @endforeach
</select>
但问题是我允许用户使用select2的
tags:true
选项生成选项

当我设置一个最初在html选项中的默认值时,它可以工作,但是当我设置一个由用户生成的默认值时,它就不工作了

这是我第一次使用select2


我怎样才能做到这一点呢?

做一点挖掘,我可以看到这个问题被提出

一个选项是检查该值是否存在,如果不存在,则添加它

var s2=$(“#选择事件”)。选择2({
占位符:“选择事件类型”,
标签:真的
});
var VAL=[“交易会”、“CA”、“一方”];
VAL.forEach(函数(e){
如果(!s2.find('选项:包含('+e+'))。长度)
s2.追加($('').text(e));
});
s2.val(val).触发(“变更”)

交易会
聚会
福
酒吧

我最近不得不在PHP脚本中实现带有选项“multiple”和“tags”的select2,并遇到了类似的问题。文档中说要将任何初始选择添加为html选项标记,但当我尝试添加两个时,我的select2控件中只会显示一个

最后,我使用配置对象“data”选项初始化select2控件,我将动态创建该选项

var initialPropertyOptions=[];
@foreach($model->properties作为$initialProperty`)
var initialPropertyOption={
id:{{$initialProperty->id},
文本:“{{$initialProperty->name}}”,
所选:真
}
initialPropertyOptions.push(initialPropertyOption);
@endforeach
$(“#属性”)。选择2({
阿贾克斯:{
url:route('models.propertySearch'),
数据类型:“json”,
延误:250,
processResults:函数(数据){
返回{
结果:数据
}
}
},
占位符:“输入属性名”,
最小输入长度:1,
多重:对,
标签:是的,
数据:initialPropertyOptions
});

性质
另一个简单的方法是设置选择选项的值并使其处于选中状态2 再次:

$('#properties').val(["Trade Fair", "CA", "Party"]);
$('#properties').select2({});
它对我有用

改善甚微:

$('#province').val(["3", "4", "5"]).trigger('change');
请参见此处的另一个答案:
$('#province').val(["3", "4", "5"]).trigger('change');