Javascript 引导多选择-触发事件';onSelectAll';或';onDeselectAll';在一次单击中取消选择/取消选中所有选项时(需要最佳方式)
我想在“onDeselectAll”事件上设置一个侦听器,但最新版本的插件中不存在“onDeselectAll” 我想要那样的东西Javascript 引导多选择-触发事件';onSelectAll';或';onDeselectAll';在一次单击中取消选择/取消选中所有选项时(需要最佳方式),javascript,jquery,jquery-plugins,bootstrap-multiselect,Javascript,Jquery,Jquery Plugins,Bootstrap Multiselect,我想在“onDeselectAll”事件上设置一个侦听器,但最新版本的插件中不存在“onDeselectAll” 我想要那样的东西 $('.multiselect').multiselect({ enableFiltering: true, enableCaseInsensitiveFiltering: true, includeSelectAllOption: true, inclu
$('.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");
}
});
最好的方法是什么
解决这个问题最好的方法是什么?我发现与“onDeselectAll”不太一样,但很接近。还有更好的吗
我发现这个选项存在于旧版本中,为什么他们要删除它
我发现开发人员对此做出了很大的改进。这是否意味着他们正在计划修复它?什么时候
我正在检查Select2是否可以执行“全选”功能。是否可以
我该怎么办?等等,要使用旧版本还是使用另一个fork使用另一个插件
这是一个理想的结果
您的代码是正确的,这些事件已经存在: 但是。。。有一只虫子。我在这个项目上创建了一个fork来修复这个bug。。。我已经发出了一个正在等待合并的请求 拉取请求:
My Fork:我在HTML中添加了一个
onchange
函数,该函数计算选择了多少选项,并且它正在工作:
<select id="yourID" class="custom-select" onchange="unselectAll();" multiple>
这是我遇到的一个bug,所以你可以考虑去做这样的事情
$(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)
}
})
谢谢,但下一步是什么?我们是否需要等待产品负责人接受您的建议?顺便说一句,“onDeselectAll”-不存在。并且文档不保证在取消选择时触发“onSelectAll”。这就是为什么我不确定它是否是bug的原因。@YevGeniyafanasysev您可以等到产品所有者接受我的建议,或者您可以在my fork()上获得带有此更正的版本,但它不是正式版本…onDeselectAll事件在文档中不存在,但在代码中它存在。如果您在js文件中找到“onDeselectAll”,则会出现大量事件。如果您拥有github帐户,您可以在我的pull请求中订阅接收通知,这是页面右下角的一个按钮:
$(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)
}
})