複数選択の目的で BootStrap-Select を使用しています。10 個のオプションがあり、3 つ以上のオプションを選択し、4 つ目のオプションを選択すると、他の選択されたオプションがランダムに選択解除されます。私はブートストラップ選択次の機能を使用しています:
$('#deptID').selectpicker('refresh');
$('#'+entry).prop('disabled',false);
選択する
<select id="years" class="select" data-live-search="true" class="selectpicker col-md-12" onchange="change_in_year()" multiple>
<option id="2011" value="2011">2011</option>
<option id="2012" value="2012">2012</option>
<option id="2013" value="2013">2013</option>
<option id="2014" value="2014">2014</option>
<option id="2015" value="2015">2015</option>
<option id="2016" value="2016">2016</option>
<option id="2017" value="2017">2017</option>
<option id="2018" value="2018">2018</option>
</select>
change_in_year()
change_in_year()
{
var yearSelect = new Array();
var i = 0;
$("#years option:selected").each(function(){
yearSelect[i] = $(this).val();
i++;
});
var yearS = new Array();
var i = 0;
$("#years option").each(function(){
yearS[i] = $(this).val();
i++;
});
if(yearSelect[0] == 0)
{
yearS.forEach(function(entry) {
if(entry != "0")
{
$('#'+entry).prop('disabled',true);
$('#'+entry).prop('selected',false);
}
});
$('#years').selectpicker('refresh');
}
if( (yearSelect[0] != 0) )
{
yearS.forEach(function(entry) {
$('#'+entry).prop('disabled',false);
});
$('#years').selectpicker('refresh');
}
}
これは私のものと同じ実際の作業コードであり、jsFiddle で適切に動作します。しかし、私のシステムでは、オプションを選択すると、他の選択されたオプションの選択が解除されます