Jquery bootstrap 多选 optgroup 选择
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/21191304/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Jquery bootstrap multiselect optgroup selection
提问by d-man
I am using Jquery bootstrap multiselect plugin which seems pretty good and fulfill most of the requirements which i needed.
我正在使用 Jquery bootstrap 多选插件,它看起来很不错,可以满足我需要的大部分要求。
The only additional functionality i want is to add checkbox to OptGroup so if user wants to select complete group they can select all by clicking it.
我想要的唯一附加功能是向 OptGroup 添加复选框,因此如果用户想要选择完整的组,他们可以通过单击选择所有组。
any help appreciated.
任何帮助表示赞赏。
http://davidstutz.github.io/bootstrap-multiselect/#examples
http://davidstutz.github.io/bootstrap-multiselect/#examples
回答by AsgarAli
No need to do any code to achieve your requirement.
无需执行任何代码即可实现您的要求。
There is an option called enableClickableOptGroups
in this plugin to select all options of optgroup
enableClickableOptGroups
此插件中有一个选项可以选择所有选项optgroup
http://davidstutz.github.io/bootstrap-multiselect/#configuration-options-enableClickableOptGroups
http://davidstutz.github.io/bootstrap-multiselect/#configuration-options-enableClickableOptGroups
回答by PatrickDelancy
Try something like this:
尝试这样的事情:
$('.multiselect-group').before('<input type="checkbox" />');
$(document).on('click', '.multiselect-group', function(event) {
var checkAll = true;
var $opts = $(this).parent().nextUntil(':has(.multiselect-group)');
var $inactive = $opts.filter(':not(.active)');
var $toggleMe = $inactive;
if ($inactive.length == 0) {
$toggleMe = $opts;
checkAll = false;
}
$toggleMe.find('input').click();
$(this).parent().find('input').attr('checked', checkAll);
event.preventDefault();
});
回答by naxxateux
You can use event.stopPropagation();
您可以使用 event.stopPropagation();
回答by Andreea Hash
After I checked an option group and then unchecked it, if I wanted to check it again, it would check all options from the group, but the group remained unchecked.
在我选中一个选项组然后取消选中它之后,如果我想再次选中它,它会选中该组中的所有选项,但该组保持未选中状态。
In order for the option group to be properly displayed as checked/unchecked after several retries, replace:
为了使选项组在多次重试后正确显示为选中/取消选中,请替换:
$(this).parent().find('input').**attr**('checked', checkAll);
with
和
$(this).parent().find('input').**prop**('checked', checkAll);
回答by Junip Dewan
in your code put this line of code only
在您的代码中只放置这行代码
enableClickableOptGroups: true
enableClickableOptGroups: 真
this will enable the option to select group
这将启用选择组的选项