从许多选择标记中选择一次删除选项

时间:2018-02-16 12:51:53

标签: javascript jquery html drop-down-menu

我有一些选定的输入,它们有相同的选项。

同一个班级,每个选择的ID不同。

我在每个选项中都有一个“onChange”事件,它给我选择的选项。

如何从所有其他选项中删除此值,而不删除选中的位置,以及如果“取消选择”,如何还原它。

非常感谢

代码: -if选项2被选中,id喜欢将其从所有选择中移除但不选择在哪里 -

dim s as Integer;
s = System.IO.Directory.GetFiles("C:\tmp_dir").Count();
LogMessage(Text(s,"#"));

1 个答案:

答案 0 :(得分:3)

您必须获取所有选定的值并将其存储在数组中。然后,您可以使用filter使用includes

隐藏数组中的数据

我使用jQuery $("select").change(..因为它更容易。 :)

$(document).ready(function() {
  $("body").on('change', '.optionRisp', function() {
    var val = [];

    //Get all selected
    $('.optionRisp option:selected').each(function() {
      if ($(this).val() != "") val.push($(this).val());
    });

    //Hide Selected
    if ( $(this).val() != "" ) {
      $(".optionRisp").not(this).find("option").show().filter(function() {
         return $(this).val() != "" && val.includes($(this).val()) ? true : false;
      }).hide();
    } else {
      $(".optionRisp").find("option").show().filter(function() {
         return $(this).val() != "" && val.includes($(this).val()) ? true : false;
      }).hide();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="optionRisp form-control">
  <option value=""></option>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

<select class="optionRisp form-control">
  <option value=""></option>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

<select class="optionRisp form-control">
  <option value=""></option>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>