세 개의 확인란이 있으며 두 개 중 하나 또는 두 개를 모두 선택하면 세 번째 확인란을 사용하지 않도록 설정해야합니다. 나는 현재 가지고있는 것보다 쉬운 방법이있을 것이라고 확신합니다. 그것은 내가 엉망이라고 믿는 것으로 변하고 있습니다. jquery 지식이 더 많은 사람이 빛을 비출 수 있기를 바랍니다.jquery를 사용하는 첫 번째 두 상태의 상태를 기반으로 세 번째 확인란을 제어하십시오.
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script src="custom.js" type="text/javascript"></script>
</head>
<body>
<input type="checkbox" class="class" id="1">First
<input type="checkbox" class="class" id="2">Second
<input type="checkbox" class="class" id="3">Third
</body>
</html>
여기가 자기의 비활성화됩니다 # 3를 확인하는 몇 가지 이유를 들어 JQuery와 5.0
jQuery(document).ready(function() {
// watches the events of all checkboxes
$(":checkbox").click(function(){
if(
// if both 1 and 2 are checked we don't want to enable Third until both are unchecked.
(($('#1:checkbox').attr('checked'))&&($('#2:checkbox').attr('checked')))||
((($('#1:checkbox').attr('checked'))&&($('#2:checkbox').attr('checked')))&&($('#3:checkbox').attr('disabled')))||
((($('#1:checkbox').attr('checked'))||($('#2:checkbox').attr('checked')))&&($('#3:checkbox').attr('disabled')))
){
// we don't want to do anything in the above events
} else if(
// handles the First check box
(($('#1:checkbox').attr('checked'))||(!$('#1:checkbox').attr('checked')))||
// handles the Second check box
(($('#2:checkbox').attr('checked'))||(!$('#2:checkbox').attr('checked')))
){
// call the disableThird function
disableThird();
}
});
// handles enabling and disabling the Third checkbox
function disableThird(){
var $checkbox = $('#3:checkbox');
$checkbox.attr('disabled', !$checkbox.attr('disabled'));
};
});
와 내가 사용 자바 스크립트입니다 :
은 여기 내 간단한 HTML 양식입니다. 나는 왜 그런지 이해하지 못한다.
이 방법이 효과적이지만 요구 사항 중 하나는 비 프로그래머가이를 편집하고 유지 관리 할 수 있어야한다는 것입니다. 이상적으로 그는 html에 새로운 체크 박스를 추가 할 수 있다면 효과적 일 것입니다. 이것들에 대한 클래스는 정의되어 있으며, 내가 아는 한 변경할 수 없습니다. 위 목록 중 하나라도 선택되면 확인란 목록의 마지막 확인란이 비활성화됩니다. 마지막 체크 박스가 선택되면 현명한 것처럼 그 위의 모든 체크 상자는 비활성화됩니다. 필자는 프로그래머가 아닌 사람이 처리하기에는 너무 복잡 해짐에 따라 그 부분을 작성하고 테스트하기조차하지 못했습니다. 나 자신은 js보다는 더 많은 PHP 코더이다. jquery, 코더는 말할 것도 없다. 어떤 도움이라도 대단히 감사하겠습니다.
질문을 업데이트하고 답변에 설명을 제공하지 마십시오. – artlung