나는이 스크립트로 주위를 연주하기 시작, 그것은 CTRL + 클릭 기능 (/ 모든 없음 컨트롤을 선택) 실종 있지만.
원래 형태로 페이지의 모든 체크 박스에 대해 작동합니다. "$ ('input [type = checkbox]')를 변경했습니다. shiftClick();" linke를 "$ ("input [name = 'selected_employees []'] "). shiftClick();" 지금까지는 단 하나의 체크 박스 그룹에 대해서만 완벽하게 작동하는 것으로 보입니다.
내 요구 사항에 대한 유일한 결함은 그룹의 모든 확인란을 선택 또는 선택 해제하는 CTRL + Click 기능이 없다는 것입니다.
<script type="text/javascript">
$(document).ready(function() {
// shiftclick: http://sneeu.com/projects/shiftclick/
// This will create a ShiftClick set of all the checkboxes on a page.
$(function() {
$("input[name='selected_employees[]']").shiftClick();
// $('input[type=checkbox]').shiftClick();
});
(function($) {
$.fn.shiftClick = function() {
var lastSelected;
var checkBoxes = $(this);
this.each(function() {
$(this).click(function(ev) {
if (ev.shiftKey) {
var last = checkBoxes.index(lastSelected);
var first = checkBoxes.index(this);
var start = Math.min(first, last);
var end = Math.max(first, last);
var chk = lastSelected.checked;
for (var i = start; i < end; i++) {
checkBoxes[i].checked = chk;
}
} else {
lastSelected = this;
}
})
});
};
})(jQuery);
});
</script>
감사합니다. 아직 버그가 있습니다. 신선한 실행에서 1을 누른 다음 3 또는 2를 클릭하십시오. 4. Semems가 민감합니다. – Reno
어쨌든 좋은 출발점이 있습니다. ;) – jessegavin