【问题标题】:Assign "select" attribute to jquery select2 dropdown dynamically将“select”属性动态分配给jquery select2下拉列表
【发布时间】:2019-07-25 15:28:14
【问题描述】:

我正在处理 jquery select2 下拉菜单。我必须在选择区域中显示多个选择的选项。为此,我循环遍历每个 select2。如果满足条件,我会将“选定”属性属性分配给选项,以便它可以出现在选择区域中。 但不知何故,select2 无法显示选定的 ''。

HTML 代码:

<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 jquery html foreach jquery-select2


    【解决方案1】:

    您可以使用 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>
    

    试试这个。

    jquery解决方案

    $( "#skill_name" ).select2({
    });
    $('#skill_name').val(["1","2","3"]).trigger('change');
    

    【讨论】:

    • 实际上我需要这个使用 jquery,因为我在 Bootstrap Modal 中使用它来进行更新。
    • 试试上面的jquery解决方案
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 2021-09-05
    相关资源
    最近更新 更多