I wrote a self-contained demo that uses jquery: $(document).ready(function() { var $chkboxes = $(‘.chkbox’); var lastChecked = null; $chkboxes.click(function(e) { if (!lastChecked) { lastChecked = this; return; } if (e.shiftKey) { var start = $chkboxes.index(this); var end = $chkboxes.index(lastChecked); $chkboxes.slice(Math.min(start,end), Math.max(start,end)+ 1).prop(‘checked’, lastChecked.checked); } lastChecked = this; }); }); <script src=”https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”></script> <html> <head> </head> <body> … Read more