2009-08-21 2 views

답변

4

체크 박스와 문제는 원칙적으로 인정 시간의 모든 방식에서 change 이벤트가 발생하기 때문에, IE6에서 잘 작동하도록하는 방법을 사용한다.

의가 비활성화 작업을 수행 할 기능을 시작하자 : 여기 단지 select 거의 확실하게 당신이 원하는 것보다 더 광범위하다, 그러나 select.some-class-to-identify-the-hours-and-minutes-and-seconds-dropdowns 그냥 잘 작동 사용

function onCheckChange() { 
    if ($("#all-day-checkbox").is(':checked')) 
    $("select").attr('disabled', 'disabled'); 
    else 
    $("select").removeAttr('disabled'); 
} 

참고.

상자가 선택되었는지 여부에 관계없이 함수가 자체적으로 파악하여 멱등하게 만듭니다. 상자를 검사하는 과정에서 반복적으로 호출하는 것이 안전합니다.

이제 우리는 그냥 몇 가지 다른 이벤트에 해당 기능을 결합해야합니다

$("#all-day-checkbox").click(onCheckChange).change(onCheckChange); 
$("label[for=all-day-checkbox]").click(onCheckChange); 
+0

나는이 모든 것을 (문서) .ready 안에 넣을 수 있을까 ?? – leora

+0

@oo - (문서) .ready에 적어도 바인드 코드를 넣어야합니다. onCheckChange 함수를 넣을 수는 있지만 필수는 아닙니다. – karim79

+0

하단의 라벨 두 번째 줄은 무엇입니까? – leora

0
$('#allday').toggle(
    function(){ 
     $('#hour, #minutes, #am-pm').attr('disabled', 'disabled'); 
    }, 
    function(){ 
     $('#hour, #minutes, #am-pm').removeAttr('disabled'); 
    } 
); 
0

시도해보십시오.

$('#checkbox').change(function(){ 
    $('#Hour, #Minute, #Period').attr('disabled', this.checked);  
}); 
+0

내가 onchange를이 체크 박스에 사용할 수 있다고 생각하지 않습니다. 적어도 이것을 테스트했을 때는 작동하지 않았습니다. 또는 사용할 수있는 경우 확인란의 "값"이 기술적으로 변경되지 않으므로 여기에서 작동하는지는 잘 모릅니다. –

+0

내가 만든 새 편집본이 실제로 작동합니다. – ChaosPandion

+0

흥미 롭습니다. 선택 상자 이외에는 onchange를 사용할 수 있다는 것을 몰랐습니다. 하지만 컨트롤이 가치를 바꿀 때 jQuery 문서에서 말하는 것이 합리적이라고 생각합니다. 이 경우에는 조금 혼란 스럽습니다. 또한 코드는 단방향입니다. 사용자가 #checkbox를 선택 취소하면 어떻게됩니까? –

관련 문제