[jquery] 확인란 켜기 / 끄기

나는 다음을 가지고있다 :

$(document).ready(function()
{
    $("#select-all-teammembers").click(function() {
        $("input[name=recipients\\[\\]]").attr('checked', true);
    });
});

id="select-all-teammembers"클릭하면 체크 표시와 체크 해제 사이를 전환 하고 싶습니다 . 아이디어? 수십 줄의 코드가 아닙니까?



답변

당신은 쓸 수 있습니다:

$(document).ready(function() {
    $("#select-all-teammembers").click(function() {
        var checkBoxes = $("input[name=recipients\\[\\]]");
        checkBoxes.prop("checked", !checkBoxes.prop("checked"));
    });
});

jQuery 1.6 이전 에는 prop ()이 아닌 attr () 만 있었을 때 다음 과 같이 작성했습니다.

checkBoxes.attr("checked", !checkBoxes.attr("checked"));

그러나 “부울”HTML 속성에 적용 할 prop()때보 attr()다 시맨틱이 우수 하므로 일반적으로이 상황에서 선호됩니다.


답변

//this toggles the checkbox, and fires its event if it has    

$('input[type=checkbox]').trigger('click');
//or
$('input[type=checkbox]').click(); 


답변

나는 이것이 오래되었다는 것을 알고 있지만 그 토글 에서 약간 모호한 질문은 각 확인란이 상태를 토글해야한다는 것을 의미 할 수 있습니다. 3을 체크하고 2를 체크하지 않으면, 토글하면 처음 3을 체크하지 않고 마지막 2를 체크합니다.

이를 위해 각 확인란의 상태를 전환하지 않고 모든 확인란을 동일한 상태로 만드는 솔루션은 작동하지 않습니다. $(':checkbox').prop('checked')많은 확인란을 수행하면 모든 .checked이진 속성 간에 논리 AND가 반환 됩니다. 즉, 속성 중 하나를 선택하지 않으면 반환 값은 false입니다.

.each()각 확인란 상태를 모두 동일하게 만들지 않고 실제로 각 상태를 토글하려는 경우 사용해야 합니다. 예 :

   $(':checkbox').each(function () { this.checked = !this.checked; });

속성이 모든 브라우저에 존재 $(this)하므로 핸들러 내부에 필요하지 않습니다 .checked.


답변

여기 또 다른 방법이 있습니다.

$(document).ready(function(){
    $('#checkp').toggle(
        function () {
            $('.check').attr('Checked','Checked');
        },
        function () {
            $('.check').removeAttr('Checked');
        }
    );
});


답변

클릭을 발생시키는 것이 더 간단하다고 생각합니다.

$("#select-all-teammembers").click(function() {
    $("input[name=recipients\\[\\]]").trigger('click');
});                 


답변

내가 생각할 수있는 가장 좋은 방법.

$('#selectAll').change(function () {
    $('.reportCheckbox').prop('checked', this.checked);
});

또는

$checkBoxes = $(".checkBoxes");
$("#checkAll").change(function (e) {
    $checkBoxes.prop("checked", this.checked);
});   

또는

<input onchange="toggleAll(this)">
function toggleAll(sender) {
    $(".checkBoxes").prop("checked", sender.checked);
}


답변

jQuery 1.6부터는 .prop(function)발견 된 각 요소의 확인 된 상태를 토글하는 데 사용할 수 있습니다.

$("input[name=recipients\\[\\]]").prop('checked', function(_, checked) {
    return !checked;
});