web-dev-qa-db-ja.com

有効/無効にする方法bootstrap selectick by by ickeckチェックボックス

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');
});
21
user1896653

変更が完了したら、selectpickerを更新する必要があります

ここに動作しています fiddle

UIを更新するコードは

$('.selectpicker').selectpicker('refresh');

詳細については、 [〜#〜] docs [〜#〜] を参照してください。

私が見つけたもう1つの間違いは、使用する必要がある無効にすることです

attr('disabled',true)

じゃない

attr('disabled')
44
Cerlin

選択ピッカーに複数のオプションがある場合、現在受け入れられている答えは非常に遅くなります。 (約0.5秒ハングする可能性があります。これは、何かを無効にするには長すぎます。)

これは私のために働いた:

無効にする:

$("#yourSelect").prop("disabled", true);
$(".selectpicker[data-id='yourSelect']").addClass("disabled");

有効にする:

$("#yourSelect").prop("disabled", false);
$(".selectpicker[data-id='yourSelect']").removeClass("disabled");

これには、選択した値が無効になったときの値が実際に表示されるという追加のボーナスもあります。 (選択ボックスの動作です)

公式のドキュメントがrefreshを無効にするためだけに使用することを示唆していることに驚いていますが、時間がかかりすぎます。

6
Skeets