Solución:
Debe actualizar el selector de selección una vez que se realiza el cambio
aquí hay un violín que funciona
El código para actualizar la interfaz de usuario es
$('.selectpicker').selectpicker('refresh');
para obtener más información, consulte DOCS
Un error más que he encontrado es que para deshabilitar tienes que usar
attr('disabled',true)
no
attr('disabled')
Si su selector de selección tiene más de unas pocas opciones, la respuesta aceptada actual es increíblemente lenta. (puede provocar un bloqueo de alrededor de medio segundo, que es demasiado tiempo para que algo quede inhabilitado).
Esto funcionó para mí:
Desactivar:
$("#yourSelect").prop("disabled", true);
$(".selectpicker[data-id='yourSelect']").addClass("disabled");
Habilitar:
$("#yourSelect").prop("disabled", false);
$(".selectpicker[data-id='yourSelect']").removeClass("disabled");
Esto también tiene la ventaja adicional de mostrar realmente cuál era el valor de la selección cuando estaba deshabilitada. (que es el comportamiento de los cuadros de selección)
Estoy un poco sorprendido de que la documentación oficial sugiera usar refresh
solo para desactivarlo, lleva demasiado tiempo.