How can I shift-select multiple checkboxes like GMail?

后端 未结 13 1092
野趣味
野趣味 2020-11-30 17:33

In GMail, the user can click on one checkbox in the email list, hold down the Shift key, and select a second checkbox. The JavaScript will then select/unselect the checkboxe

13条回答
  •  孤街浪徒
    2020-11-30 17:54

    Got this solution from http://abcoder.com/javascript/jquery/simple-check-uncheck-all-jquery-function/ (now dead):

    JavaScript and HTML code

    var NUM_BOXES = 10;
    
    // last checkbox the user clicked
    var last = -1;
    
    function check(event) {
      // in IE, the event object is a property of the window object
      // in Mozilla, event object is passed to event handlers as a parameter
      if (!event) { event = window.event }
      var num = parseInt(/box\[(\d+)\]/.exec(this.name)[1]);
      if (event.shiftKey && last != -1) {
         var di = num > last ? 1 : -1;
         for (var i = last; i != num; i += di) {
            document.forms.boxes['box[' + i + ']'].checked = true;
         }
      }
      last = num;
    }
    
    function init() {
      for (var i = 0; i < NUM_BOXES; i++) {
        document.forms.boxes['box[' + i + ']'].onclick = check;
      }
    }
    
        

提交回复
热议问题