2014-12-05 1 views
10

Есть selectpicker у checkbox. Я хочу, если флажок установлен, selectpicker будет включен, если он не установлен, selectpicker будет отключен. Я написал это, не работает (Here is the fiddle):Как включить/отключить бутстрап selectpicker by ickeck checkbox

$('.checkBox').on('ifChecked', function(event) { 
    $(this).parents('.clearfix').find('.selectpicker').removeAttr('disabled'); 

}); 
$('.checkBox').on('ifUnchecked', function(event) { 
    $(this).parents('.clearfix').find('.selectpicker').attr('disabled'); 
}); 

ответ

25

Вы должны обновить selectpicker после того, как изменение сделано

здесь рабочий fiddle

код для обновления пользовательского интерфейса является

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

для получения дополнительной информации см. DOCS

Еще одна ошибки я нашел это, чтобы отключить, вы должны использовать

attr('disabled',true) 

не

attr('disabled') 
+1

спасибо! – user1896653

+0

Существует также простой пример включения/выключения [в документах] (http://silviomoreto.github.io/bootstrap-select/methods/#selectpickerrefresh). – Leith

1

Если выбрать сборщик имеет больше, чем просто несколько вариантов, текущий принятый ответ невероятно медленно. (Может вызвать торчать полсекунды, которая слишком долго, чтобы просто сделать что-то отключено.)

Это работает для меня:

Disable:

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

Enable:

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

У этого также есть дополнительный бонус, фактически показывающий, какое значение было выбрано, когда оно было отключено. (что является поведением выборочных ящиков)

Я как бы удивлен, что официальная документация предлагает использовать refresh, чтобы отключить его, это занимает слишком много времени.

Смежные вопросы