我使用了由davidstutz创建的Bootstrap multiselect。
我启用了多选,也选中了全部复选框,但当我选中复选框时,它会被选中,但不会像单选那样关闭下拉列表。这对我来说是一个非常具体的要求。
如何像关闭普通选择框一样关闭每个选项选择的下拉列表?
HTML:
<select multiple="multiple" data-placeholder="Select"
multiselect-dropdown="reportListDropdown" ng-model="reports.reportList"
ng-options="replist.id as replist.name for replist in reports.reportListArr">
</select>答案:
272: if (this.options.multiple) {
273: // Simply select additional option.
274: $option.prop('selected', true);
+275: this.$button.click();
}我已经在第275行和bootstrap-multiselect.js的else部分添加了this.$button.click();代码,它工作得很好,但是编辑核心文件并不是一个真正的解决方案,所以有谁知道用属性或选项级别来处理这个问题的干净方法吗?
发布于 2015-05-26 00:20:44
要从jQuery中关闭Bootstrap MultiSelector,我发现只需简单地单击任何其他对象就可以使用本机功能将其关闭。因此,这是可行的:
$(document).click();下面是一个对选中的MultiSelect项进行迭代,然后关闭MultiSelect的示例:
$('#foo').on("change", '[name="bar\\[\\]"]', function() {
$('[name="bar\\[\\]"]:checked').each(function(){
console.log( $(this).val() );
});
$(document).click(); // This closes the MultiSelector
});发布于 2016-07-19 21:12:28
我为此找到了另一个解决方案(在我看来更好:D )我注意到,当下拉菜单打开时,名为“open”的类被附加到div容器。因此,要关闭下拉列表,只需删除类。你可以这样做:
$('#dropdownSelector').multiselect({
buttonContainer: '<div id="dropdownContainer"/>',
onChange: function(element, checked) {
$('#dropdownContainer').removeClass('open');
}
});发布于 2021-02-08 19:04:35
.multiselect({
onChange: function(option, checked) {
this.$container.removeClass('open');
}
});https://stackoverflow.com/questions/20905137
复制相似问题