如何手动启用或禁用BsMultiSelect下拉选择菜单
BsMultiSelect手动启用菜单失效解决方案
操作未生效的核心原因是BsMultiSelect有独立的内部状态管理,仅修改原生select元素的disabled属性不会同步到组件内部的状态标识,修改后组件不会识别到状态变更。
你可以直接调用组件内置的setDisabled方法完成状态切换,不需要手动修改DOM属性、调用update系列方法,组件内部会自动处理状态同步和视图刷新:
禁用菜单的简化写法
// 移除所有选项 removeOptions(select); // 直接调用组件方法禁用 select.bsMultiSelect.setDisabled(true);
启用菜单的正确写法
// 新增选项 addOptions(select); // 直接调用组件方法启用 select.bsMultiSelect.setDisabled(false);
如果你想要保留原来的写法,只需要在移除disabled属性后同步更新组件内部配置即可:
addOptions(select); select.removeAttribute('disabled'); // 新增这行同步组件内部配置 select.bsMultiSelect.options.disabled = false; select.updateData(); select.updateAppearance();
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

