2014-12-05 20 views
10

Istnieje selectpicker obok checkbox. Chcę, jeśli pole wyboru jest zaznaczone, selectpicker będzie włączony, jeśli odznaczony, selectpicker zostanie wyłączony. pisałem ten, który nie działa (Here is the fiddle):Włączanie/wyłączanie wybieraka bootstrap przez pole wyboru ickeck

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

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

Odpowiedz

25

Należy odświeżyć selectpicker gdy zmiana odbywa

tu jest praca fiddle

kod odświeżyć interfejs jest

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

, aby uzyskać więcej informacji, zapoznaj się z DOCS

Jeszcze jeden błąd znalazłem to, aby wyłączyć trzeba użyć

attr('disabled',true) 

nie

attr('disabled') 
+1

Dziękuję bardzo! – user1896653

+0

Istnieje również prosty włącz/wyłącz przykład [w dokumentacji] (http://silviomoreto.github.io/bootstrap-select/methods/#selectpickerrefresh). – Leith

1

Jeśli select zbieracz ma więcej niż tylko kilka opcji, obecna odpowiedź akceptowana jest niesamowicie wolno. (Może powodować obijać pół sekundy, który jest zbyt długi, aby po prostu zrobić coś wyłączona.)

Ten pracował dla mnie:

Wyłącz:

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

Włącz:

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

Ma to również dodatkową zaletę, która pokazuje, jaka była wartość wyboru, gdy była wyłączona. (co jest zachowaniem wybranych skrzynek)

Jestem trochę zaskoczony, że oficjalna dokumentacja sugeruje użycie refresh tylko po to, aby ją wyłączyć, trwa to zdecydowanie za długo.