Skip to content

Instantly share code, notes, and snippets.

@AndrewRayCode
Created September 25, 2012 19:53
Show Gist options
  • Star 33 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save AndrewRayCode/3784055 to your computer and use it in GitHub Desktop.
Save AndrewRayCode/3784055 to your computer and use it in GitHub Desktop.
jQuery plugin for shift + click to select multiple checkboxes
// 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;
});
};
@zergius-eggstream
Copy link

https://gist.github.com/zergius-eggstream/bea51020b471886bafe1b2baef9817b8
almost the same but with live collections support

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment