我想在'onDeselectAll'事件上放置一个监听器,但是'onDeselectAll' - 在最新版本的Bootstrap multiselect插件中不存在。
我想要那样的东西
$('.multiselect').multiselect({
enableFiltering: true,
enableCaseInsensitiveFiltering: true,
includeSelectAllOption: true,
includeSelectAllDivider: true,
maxHeight: 400,
onSelectAll: function () {
console.log("select-all-nonreq");
},
onDeselectAll: function () {
console.log("deselect-all-nonreq");
}
});
最好的方法是什么?
解决此问题的最佳解决方案是什么?我发现this fork与'onDeselectAll'不完全相同但是很接近。还有什么更好的吗?
我在旧版本中存在此选项存在于旧版本中,为什么会将其删除?
我发现开发人员对此提出了issue。这是否意味着他们计划修复它?当α
我正在检查Select2是否可以“全部选择”是否可能?
我该怎么办?等等,去旧版本或使用另一个fork使用另一个插件?
这是一个理想的结果。
答案 0 :(得分:2)
您的代码是正确的,这些事件已经存在:http://davidstutz.github.io/bootstrap-multiselect/#configuration-options-onSelectAll
但是......有一个错误。我在这个项目上创建了一个fork来修复这个bug ...我已经做了一个等待合并的pull请求。
拉取请求:https://github.com/davidstutz/bootstrap-multiselect/pull/764/files
答案 1 :(得分:0)
我在 HTML 中添加了一个 onchange
函数,它计算选择了多少选项并且它正在工作:
<select id="yourID" class="custom-select" onchange="unselectAll();" multiple>
这是验证没有选择任何内容的函数:
function unselectAll(){
if($('#yourID :selected').length==0){
//Do what you need here
}
}
答案 2 :(得分:0)
是的,这也是我遇到的一个错误,因此您可以考虑进行类似的操作
$(document).on('change','.multiselect',function(){
var labels = [];
var brands = $('#field option:selected');
$(brands).each(function(index, brand){
labels.push($(this).text());
});
var values = $("#field").val();
if(values.length > 0){
console.log(labels);
console.log(values)
}
})