按住Shift键并单击以选择复选框范围
Shift + Click to Select a Range of Checkboxes
我生成了大表,每行都有一个复选框,class"chcktbl"。
在表格标题中,有一个全选复选框,类为"chckHead"。
选择/取消选择所有功能运行良好,我在表格标题中显示的所选图表的计数也是如此。
启用shift+click功能以选择一系列复选框的功能也有效,但在其当前格式中,在弹出窗口中生成错误消息之前,仅选择10个复选框:
停止运行此脚本?此页面上的脚本导致您的web浏览器运行缓慢。如果它继续运行,您的计算机可能会变得没有响应。
<script type=text/javascript>
//select all button
$('#chckHead').click(function() {
if (this.checked === false) {
$('.chcktbl:checked').attr('checked', false);
}
else {
$('.chcktbl:not(:checked)').attr('checked', true);
}
countSelected();
});
//count number of boxes checked
function countSelected() {
var numCharts = $('input.chcktbl:checked').length;
$('#numCharts').html(numCharts);
}
//SHIFT+Click to select a range of checkboxes:
// this variable stores the most recently clicked checkbox
// it is used for shift-clicks
var lastClickedBox = 0;
// the checkbox functionality is default to the browser
$('.chcktbl').click(function(event) {
var clickedBox = $('.chcktbl').index(event.target);
if(event.shiftKey) {
setCheckboxes(lastClickedBox, clickedBox);
};
lastClickedBox = clickedBox;
countSelected();
});
// sets all the checkboxes between the specified indices to true
function setCheckboxes(end, start) {
if(start > end) {
var temp = start;
start = end;
end = temp;
};
for(var i = start; i < end; i++) {
$('.chcktbl').eq(i).prop('checked', true);
};
countSelected();
};
</script>
这是一个非常常见的功能,可以一键选择一系列项目,但我找不到有效的方法。如果有人知道更好的方法,或者发现代码中有一些效率低下的地方,请告诉我。
使用jquery nextUntil怎么样?
我实际上并没有测试这个,但这应该会给你一个基本的想法,它会删除for循环。在使用nextUntil/prevUntil之前,我创建了与此类似的功能,并且从未得到过无响应的页面。
function setCheckboxes(end, start) {
if(start > end) {
var temp = start;
start = end;
end = temp;
};
$('.chcktbl').eq(start).nextUntil(':eq('+(end+1)+')').add().prop('checked', true);
countSelected();
};
我试过你的代码,对我来说效果很好。你可能想试试这个jquery插件
https://gist.github.com/DelvarWorld/3784055
相关文章:
- 如何创建只允许用户在选中前一个复选框的情况下选择复选框的复选框验证
- 禁用选择/复选框 当选择/选中另一个时
- 如何使用JQuery按值选择复选框
- jquery选择复选框选择的值
- 取消选中时选择最接近的“从中选择”复选框
- 根据动态值选择和取消选择复选框
- 选择/取消选择复选框,该复选框未按预期使用.coneast('table').find('tbo
- 背景图像切换和隐藏选择复选框
- 如何通过选择复选框和下拉列表用Javascript更改标签值
- 选择复选框的Javascript
- 如何将选择复选框值动态传递给 ajax 调用变量动态发布到 php 变量
- 获取多个选择复选框的值 Javascript
- 翡翠,如果其他速记选择复选框
- jQuery动态选择复选框组onChange
- 按住Shift键并单击以选择复选框范围
- 选中p中的所有复选框:选择复选框菜单
- 选择复选框时显示数据
- 从多个JSON文件中选择复选框时切换标记
- 如何为第一次选择和第二次选择复选框应用不同的颜色
- 如何在HTML中选择复选框时创建弹出窗口