【问题标题】:How could to manage two same select2, hide and show selected item from another select2如何管理两个相同的 select2,隐藏和显示另一个 select2 中的选定项目
【发布时间】:2021-12-28 21:39:42
【问题描述】:

根据this question,我可以将所选项目添加到另一个选择中。

假设我们有两个 select2,具有相同的选项。 当我从 box1 中选择项目时,应该从 box2 中删除相同的项目并且用户无法选择它。 我在jsfiddle.net 上提供。

现在我想取消选中它,box2 应该再次拥有该项目。

<select  multiple id="Box1" name="Box1" style='width:325px;float:left;border:1px solid #80C7E2;'>
    <option value="1">A</option>                                
    <option value="2">B</option>                                
    <option value="3">C</option>                                
    <option value="D">D</option>                                
</select>

<select  multiple id="Box2" name="Box2" style='width:325px;float:left;border:1px solid #80C7E2;'>
    <option value="1">A</option>                                
    <option value="2">B</option>                                
    <option value="3">C</option>                                
    <option value="D">D</option>                                
</select>

$("#Box1").select2();
$("#Box2").select2();


$("#Box1").on("change", function() {
    $.each($('#Box1').select2('data'), function(i, item) {
       $('#Box2 option[value="'+item.id+'"]').remove();
         });
});

【问题讨论】:

    标签: javascript jquery select jquery-select2 option


    【解决方案1】:

    试试这个,它可能会有所帮助:

    $("#Box1").select2();
    $("#Box2").select2();
    
    $("#Box1").on("change", function(e) 
    {       
        $("#Box2").html("");
        $('#Box1 option').each(function()
        {
            if($("#Box1").val())
          {
              if($("#Box1").val().some(e=>{return e == $(this).val()}))
              {
                  $('#Box2 option[value="'+$(this).val()+'"]').remove();
              }
              else if(!$("#Box2 option").toArray().some(e=>{return e.value == $(this).val()}))
              {          
                 $("#Box2").append($('<option>', {value: $(this).val(), text: $(this).text()}));
              } 
          }
          else
          {
            $("#Box2").html($("#Box1").html());
          }    
        }); 
    });
    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.css" rel="stylesheet"/>
    <select  multiple id="Box1" name="Box1" style='width:325px;float:left;border:1px solid #80C7E2;'>
        <option value="1">A</option>                                
        <option value="2">B</option>                                
        <option value="3">C</option>                                
        <option value="D">D</option>                                
    </select>
    
    <select  multiple id="Box2" name="Box2" style='width:325px;float:left;border:1px solid #80C7E2;'>
        <option value="1">A</option>                                
        <option value="2">B</option>                                
        <option value="3">C</option>                                
        <option value="D">D</option>                                
    </select>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.js"></script>

    【讨论】:

      猜你喜欢
      • 2017-06-02
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 2020-03-09
      相关资源
      最近更新 更多