Javascript 使用“选择多个项目”;shift";钥匙

Javascript 使用“选择多个项目”;shift";钥匙,javascript,jquery,select,jquery-select2,Javascript,Jquery,Select,Jquery Select2,我使用select2 v.3.5.1,需要选择多个项目。我想知道,是否可以使用shift键选择多个项目?我不想让多选,只要在按住shift键的同时选择几个选项即可。非常感谢您提供代码片段。您可以通过按住ctrl键来完成此操作。 如果您在其他程序中选择列表中的单个项目,则默认按此键。如果我正确理解了答案,则可能的解决方案可以基于: 将数据最大项添加到您的选择中 添加委派事件侦听器,以便在选择时检测SHOT键 在上选择2,选择测试是否必须预防事件 最后将结果写入div $(document).

我使用select2 v.3.5.1,需要选择多个项目。我想知道,是否可以使用
shift
键选择多个项目?我不想让
多选
,只要在按住
shift
键的同时选择几个选项即可。非常感谢您提供代码片段。

您可以通过按住ctrl键来完成此操作。
如果您在其他程序中选择列表中的单个项目,则默认按此键。

如果我正确理解了答案,则可能的解决方案可以基于:

  • 数据最大项添加到您的选择中
  • 添加委派事件侦听器,以便在选择时检测SHOT键
  • 上选择2,选择测试是否必须预防事件
  • 最后将结果写入div
$(document).on('keyup-keydown',“.select2-drop-active”,函数(e){
console.log('shift:'+e.shiftKey);
如果(如换档键){
$(“#mySelect1”).attr('multiple','multiple');
}否则{
$(“#mySelect1”).removeAttr('multiple');
}
})
$(“#我的选择1”)。选择2()
.on('select2-selection',功能(e){
var maxItem=$('#mySelect1')。数据('maxItem');
var shiftKey=$(“#mySelect1”).attr('multiple')=='multiple';
var seletedOpt=$('.select2 drop active.mySelected').length;
log('maxItem:'+maxItem+'shiftKey:'+shiftKey+'seletedOpt:'+seletedOpt');
if(shiftKey&&seletedOpt=maxItem){
$(“#mySelect1”).removeAttr('multiple');
var selectedOption=$('.select2 drop active.mySelected').map(函数(idx,ele){
返回ele.textContent;
}).get().join(“”);
setTimeout(函数(){
$('.select2容器a span:first').text(selectedOption);
},100,选择选项);
}否则{
e、 预防默认值();
}
}否则{
$(“#mySelect1”).removeAttr('multiple');
}
});
.mySelected{
背景#3875d7;
颜色:#fff;
}

沃尔沃汽车
萨博
欧宝
奥迪