2016-06-11 60 views
0

我有在行列出了很多复选框元素的形式。我想实现一个功能,它允许用户保存CNTRL,然后选择一个复选框,并有充分的盒子或者:成为检查是有成为从检查没有最初选中复选框
B)选择多个复选框按CNTRL +点击

A)最近选中复选框

这可能吗?非常感谢。

回答

3

这可以帮助你。

的代码用于shift+key

// Usage: $form.find('input[type="checkbox"]').shiftSelectable(); 
// replace input[type="checkbox"] with the selector to match your list of checkboxes 

$.fn.shiftSelectable = function() { 
var lastChecked, 
    $boxes = this; 

$boxes.click(function(evt) { 
    if(!lastChecked) { 
     lastChecked = this; 
     return; 
    } 

    if(evt.shiftKey) { 
     var start = $boxes.index(this), 
      end = $boxes.index(lastChecked); 
     $boxes.slice(Math.min(start, end), Math.max(start, end) + 1) 
      .attr('checked', lastChecked.checked) 
      .trigger('change'); 
    } 

    lastChecked = this; 
}); 

};

积分:jQuery plugin for shift + click to select multiple checkboxes