通过Cntrl +单击选择多个复选框

时间:2016-06-11 05:40:58

标签: javascript jquery html checkbox

我的表单中有许多按行排列的复选框元素。我想实现一个允许用户持有Cntrl的函数,然后选择一个复选框并让每个框都有:

A)检查是否没有初始框检查
B)从最近的复选框中选中

这可能吗?非常感谢。

1 个答案:

答案 0 :(得分: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