2017-03-14 1 views
0

다음 코드를 사용하고 있으며 내 체크 박스를 토글하지만 올바르게는하지 않습니다.Jquery - 문제 토글 체크 박스

확인란이 수동으로 선택되어 있으면 문제가 발생합니다.

코드를 실행하면 상자를 검사하지만 다시 클릭하면 이전에 검사되지 않은 항목 만 선택 취소됩니다.

$(".all").click(function(e) { 
    var checked = !$(this).data('checked'); 
    $('.trigger').attr('checked', checked); 
    $(this).data('checked', checked); 
}); 

내 요소로 input type='image'을 사용하여 확인을 실행합니다.

<input type="image" class="all" title="All" src="toggle.png"/> 

다음을 사용했지만 이미지를 실행하면 확인란을 선택 취소하고 전화를 걸 때 사용한 이미지를 제거합니다.

$('.all').toggle(function(){ 
    $('input:checkbox').attr('checked','checked'); 

},function(){ 
    $('input:checkbox').removeAttr('checked'); 
}) 

누구든지이 작업을 올바르게 수행 할 수 있습니까?

감사

+0

귀하의 질문에 [mcve]를 게시하십시오. 여러분이 묘사하고있는 행동을 관찰 할 수 있도록'<>'아이콘을 사용하여 stacksnippet을 직접 질문에 추가하십시오. – j08691

+0

커스텀 데이터 값이 아닌 체크 박스에': checked'를 사용하십시오. 또는'.all' 코드로 데이터 값을 설정/해제하십시오. –

+1

중복 코드가있는 예 https://jsfiddle.net/7sm17x1k/ – DaniP

답변

0

당신이 '확인'속성에 따라 선택해야 전환하려면 : 만 아니었다 것들되지 않음 '이 비트에 조금 혼란 스러워요

$('.all').click(function(){ 

    var checked = $('input:checkbox').not(':checked'); 
    $('input:checkbox:checked').removeAttr('checked'); 
    checked.attr('checked','checked'); 
    }); 

이전에 확인 된 '- 무엇을 의미합니까? 확인되지 않은 항목을 선택 취소 할 수 없습니다. Btw은 https://jsfiddle.net/4ckjwv8b/

: 여기

는 작업 바이올린입니다. 하나의 옵션을 항상 선택하려면 입력 유형 '라디오'를 사용할 수 있습니다.

+0

이것이 나를 위해 작동하지 않는 것 같습니다. 토글을 사용하면 토글을 트리거하는 데 사용중인 이미지가 숨겨집니다. – Tom

+0

나는 내 대답을 업데이트하고 토글 대신 클릭을 사용하고 'checked'를 변수에 저장해야합니다. 그렇지 않으면 다음 행에 선택이 해제되어 선택됩니다. – Martina