selectpicker
の横にcheckbox
があります。チェックボックスがオンの場合、selectpickerが有効になり、オフの場合、selectpickerが無効になります。動作していませんでした( ここにフィドルがあります ):
$('.checkBox').on('ifChecked', function(event) {
$(this).parents('.clearfix').find('.selectpicker').removeAttr('disabled');
});
$('.checkBox').on('ifUnchecked', function(event) {
$(this).parents('.clearfix').find('.selectpicker').attr('disabled');
});
変更が完了したら、selectpickerを更新する必要があります
ここに動作しています fiddle
UIを更新するコードは
$('.selectpicker').selectpicker('refresh');
詳細については、 [〜#〜] docs [〜#〜] を参照してください。
私が見つけたもう1つの間違いは、使用する必要がある無効にすることです
attr('disabled',true)
じゃない
attr('disabled')
選択ピッカーに複数のオプションがある場合、現在受け入れられている答えは非常に遅くなります。 (約0.5秒ハングする可能性があります。これは、何かを無効にするには長すぎます。)
これは私のために働いた:
無効にする:
$("#yourSelect").prop("disabled", true);
$(".selectpicker[data-id='yourSelect']").addClass("disabled");
有効にする:
$("#yourSelect").prop("disabled", false);
$(".selectpicker[data-id='yourSelect']").removeClass("disabled");
これには、選択した値が無効になったときの値が実際に表示されるという追加のボーナスもあります。 (選択ボックスの動作です)
公式のドキュメントがrefresh
を無効にするためだけに使用することを示唆していることに驚いていますが、時間がかかりすぎます。