如何通过ickeck复选框启用/禁用bootstrap selectpicker
checkbox
旁边有selectpicker
。 我想如果复选框被选中,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
这是一个工作小提琴
用于刷新UI的代码是
$('.selectpicker').selectpicker('refresh');
有关更多信息,请参阅DOCS
我发现的另一个错误是禁用你必须使用
attr('disabled',true)
不
attr('disabled')
如果您的选择选择器不仅仅有几个选项,那么当前接受的答案非常慢。 (可能导致挂起半秒钟,这太长时间不能让某些东西被禁用。)
这对我有用:
禁用:
$("#yourSelect").prop("disabled", true); $(".selectpicker[data-id='yourSelect']").addClass("disabled");
启用:
$("#yourSelect").prop("disabled", false); $(".selectpicker[data-id='yourSelect']").removeClass("disabled");
这也有额外的好处,实际显示选择的值是什么时候被禁用。 (这是选择框的行为)
我有点惊讶官方文档建议使用refresh
只是为了禁用它,它需要太长时间。