이 문제를 파악하는 데 문제가 있습니다. 두 개의 체크 박스가 있습니다 (향후에는 더 추가 될 예정입니다).
checkSurfaceEnvironment-1
checkSurfaceEnvironment-2
기본적으로 if 문을 작성하고 그중 하나가 확인되고 다른 하나는 확인되지 않았는지 테스트하고 싶습니다. 다음을 수행하는 가장 쉬운 방법은 무엇입니까?
if ( $("#checkSurfaceEnvironment-1").attr('checked', true) &&
$("#checkSurfaceEnvironment-2").is('**(NOT??)** :checked') ) {
// do something
}
답변
내가 사용하는 신뢰할 수있는 방법은 다음과 같습니다.
if($("#checkSurfaceEnvironment-1").prop('checked') == true){
//do something
}
선택된 요소를 반복하려면 상위 요소를 사용하십시오.
$("#parentId").find("checkbox").each(function(){
if ($(this).prop('checked')==true){
//do something
}
});
더 많은 정보:
이것은 모든 체크 박스에 체크 박스의 실제 상태를 저장하는 속성이 있기 때문에 잘 작동합니다. 원하는 경우 페이지를 검사하고 확인란을 선택 및 선택 취소하면 “선택됨”(있는 경우) 속성이 동일하게 유지됩니다. 이 속성 은 현재 상태가 아닌 체크 박스 의 초기 상태 만을 나타냅니다 . 현재 상태는 해당 확인란에 대한 dom 요소의 확인 된 속성에 저장됩니다.
답변
if (!$("#checkSurfaceEnvironment-1").is(":checked")) {
// do something if the checkbox is NOT checked
}
답변
jQuery .not()
메서드 또는 :not()
선택기를 사용할 수도 있습니다 .
if ($('#checkSurfaceEnvironment').not(':checked').length) {
// do stuff for not selected
}
추가 참고 사항
:not()
선택기에 대한 jQuery API 문서에서 :
이 아니요 () 메소드는 에 복잡한 선택기 또는 변수를 밀어 것보다 더 읽기 선택 당신을 제공 끝날 하지 () :
선택 필터. 대부분의 경우 더 나은 선택입니다.
답변
다른 방법 :
여기에 작동 예제가 있고 여기에 코드가 있습니다. 또한 prop을 사용해야합니다.
$('input[type="checkbox"]').mouseenter(function() {
if ($(this).is(':checked')) {
//$(this).prop('checked',false);
alert("is checked");
} else {
//$(this).prop('checked',true);
alert("not checked");
}
});
체크 된 속성을 토글하는 방법을 설명했습니다.
답변
if ( $("#checkSurfaceEnvironment-1").is(":checked") && $("#checkSurfaceEnvironment-2").not(":checked") )
답변
avijendr가 제안한 것과 같은보다 직접적인 구현을 찾고있었습니다.
나는 그의 / 그녀의 구문에 약간의 문제가 있었지만 작동하도록했습니다.
if ($('.user-forms input[id*="chkPrint"]:not(:checked)').length > 0)
내 경우, 나는 클래스와 테이블을했다 user-forms
, 그리고 문자열을 가지고 체크 박스의 경우 나는 확인 된 checkPrint
자신의에서이 id
체크되지 않은했다.
답변
확인란이 선택되어 있는지 확인하는 가장 쉬운 방법 (jQuery 사용)은 다음과 같습니다.
‘선택’한 경우 :
if ($(this).is(':checked')) {
// I'm checked let's do something
}
‘확인’하지 않은 경우 :
if (!$(this).is(':checked')) {
// I'm NOT checked let's do something
}