Javascript 为多个选择和允许的标记选择2个默认值
我有一个选择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
<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');