2013-07-19 4 views
0

확인란이있는 폼이 있습니다. 사용자가 레이블을 클릭하면 스왑 된 사용자 정의 확인란 아이콘이 나타납니다. 잘 작동하지만 폼의 체크 박스를 사용하지 않도록 설정 했으므로 사용하지 않는 클릭 이벤트를 클릭 할 때 클릭 이벤트가 발생하지 않도록하지는 않습니다. 어떻게해야합니까?비활성화 된 체크 박스에서 JQuery를 트리거하지 마십시오.

JQuery와 :

$('input[type=checkbox] + label').click(function() { 
    $(this).toggleClass('checkbox-pressed'); 
}); 

HTML :

<input type="checkbox" id="A"><label for="A">Option 1</label> 
<input disabled type="checkbox" id="B"><label for="B">Option 2 - don't trigger JQ</label> 

답변

6

사용 :not(:disabled) 비활성화되지 않습니다 만 체크 박스를 선택합니다.

$('input[type=checkbox]:not(:disabled)').click(function() { 
    ... 
}); 

문서 : :not():disabled


당신은 오히려 .on()를 사용해야합니다. 그렇지 않으면 (때문에 일부 사용자 조치, 말)를 초기 페이지가로드 한 후 disabled 될 확인란에 대해 작동하지 않습니다 :

$(document).on('click', 'input[type=checkbox]:not(:disabled)', function() { 
    ... 
}); 
+0

좋은 대답을하지만, 이러한 CSS 선택기가 taylorc93 @ IE – taylorc93

+0

에서 일 해달라고 잊지 말아 - 그들은 이후 IE9에서 않습니다. – techfoobar

+0

정말요? 내 나쁜, 어제 그들이 IE에서 전혀 작동하지 않는다고 말한 기사를 읽었지 만, 그것이 구식이었던 것 같아요. – taylorc93

0
을 사용하기 쉬울 것

: 선택

jQuery를

에 자세한 내용은 here을 참조하십시오.

3

는이 같은 :enabled 선택 사용할 수 있습니다

$(':checkbox:enabled').click(function() { 
    // Your code here... 
}); 
관련 문제