如何检查变量值是否是select2打开时的选项之一?

时间:2016-09-21 14:46:41

标签: jquery select2

如何检测我的变量值是否确实存在于select2中的一个选项中? 例如,如果select2打开后它确实存在,我想从选择中删除该选项。

到目前为止,我只有一个条件来检测select2是否打开,那么如何检查我的var是否确实存在于选项中?

var myvariable = $('form#myform #toremove').val();
$('form#myform .select2').on('select2:open', function(e){
   //this part is wrong
   $('form#myform .select2 option').each(function(){
       if($(this).val() == myvariable){
           $(this).remove();
       }
   }); 
});

2 个答案:

答案 0 :(得分:1)

您可以在打开菜单时检查<option>元素,并从DOM中删除相关元素:

$(document).ready(function() {
  $("#s1").select2();

  
  $("#s1").on('select2:opening', function (e, i) {
    $(this).find('option').each(function(i, e) {
      // You can check either the text or the value
      if ($(this).text() == 'Alabama' || $(this).val() == 'AL') {
        $(this).remove();
      }
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.full.min.js"></script>

<select id="s1" multiple="multiple" width="100">
  <option value="AL">Alabama</option>
  <option value="WY">Wyoming</option>
</select>

答案 1 :(得分:0)

打开后直接删除

$('.select2 option[value="'+myvariable+'"]').remove()