我正在研究jquery select2下拉列表。我必须在选择区域中显示多个选择选项。为此,我遍历 select2 中的每一个。如果满足条件,我会将"选定"属性属性分配给选项,以便它可以出现在选择区域中。但不知何故,select2 无法显示选定的 ''。
网页代码:
<div class="form-group col-md-12">
<label for="inputsskill">Skill<span class="required-field">*</span></label>
<fieldset>
<select class="custom-select w-100" name="skill_name[]" id="skill_name" multiple="multiple" style="width: 100%;">
@if(!$skills->isEmpty())
@foreach($skills as $skill)
<option value="{{$skill->id}}">{{$skill->name}}</option>
@endforeach
@endif
</select>
</fieldset>
</div>
JQUERY代码:
// parse skills
var parseData = JSON.parse(skill);
// parseData is an array which contain 1,2,3 values like ['1','2','3']
$("#skill_name > option").each(function() {
// if select2 and array values matches assign selected attribute to that option
if( $.inArray($(this).val(), parseData) !== -1 ) {
$(this).attr('selected', 'selected');
}
});
Select2 Jquery:
$( "#skill_name" ).select2({
});
我不知道我哪里出错了,如果有人在这方面指导我,我将不胜感激。谢谢
您可以使用
PHP轻松实现此功能。例如:从要预先选择的数据库中获取技能并创建技能数组。然后在您的循环中匹配它。喜欢
<div class="form-group col-md-12">
<label for="inputsskill">Skill<span class="required-field">*</span></label>
<fieldset>
<select class="custom-select w-100" name="skill_name[]" id="skill_name" multiple="multiple" style="width: 100%;">
@if(!$skills->isEmpty())
@foreach($skills as $skill)
<option value="{{$skill->id}}" <?php
if(in_array($skill->name, $selectedskillsArray)){
echo $selected = 'selected';
}
?> >{{$skill->name}}</option>
@endforeach
@endif
</select>
</fieldset>
</div>
试试这个。
J查询解决方案
$( "#skill_name" ).select2({
});
$('#skill_name').val(["1","2","3"]).trigger('change');