如何检测我的变量值是否确实存在于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();
}
});
});
答案 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()