2012-07-19 3 views
0

두 개의 확인란에 함수를 할당하려고하는데 조건 (이 경우 양식의 단계 번호)을 기준으로 추가해야합니다. 이것은 체크 박스를 선택 (또는 선택 해제) 한 후에 읽기 전용으로 만드는 둥근 방식입니다. 그래서, 1 단계에서 사용자가 cb1 또는 cb2를 선택하길 원하지만 2 단계에서 확인란 값을 변경하지 못하게 할 함수를 지정하려고합니다.조건부를 기반으로 함수를 실행해야합니다.

내가 뭘 잘못하고 있니?

function functionOne() { 
    this.checked = !this.checked 
}; 
if (document.getElementById("stepNumber").value == 2) { 
    document.getElementById("cb1").setAttribute("onkeydown", "functionOne(this)"); 
    document.getElementById("cb2").setAttribute("onkeydown", "functionOne(this)"); 
} 
+0

입니다 : 여기

은 작업 예입니다? –

답변

0

당신은 그 인수에 요소를 통과, 그래서 사용됩니다 왜 선택에서 해제

document.getElementById("cb1").onkeydown = functionOne; 
document.getElementById("cb2").onkeydown = functionOne; 

function functionOne() { 
    this.checked = !this.checked 
}; 
0

:

function functionOne(elem) { 
    elem.checked = !elem.checked 
}; 

당신은 또한 속성을 사용할 수 있습니다 확인란?

Function onCheck(elm) 
{ 
    document.getElementById("cbValue").value = elm.value; 
    elm.disabled = true; 
} 


<input id="cbValue" type="hidden" /> 

양식이 다시 서버로 데이터를 보낼 수 있도록 숨겨진 입력 필드를 사용합니다.

+0

그 값은 양식에 게시되지 않기 때문에 확인란을 비활성화 할 수 없습니다. 실제로 확인란을 선택하고 양식을 제출 한 다음 후속 단계에서 값을 변경할 수 없도록 확인란을 설정해야하지만 비활성화 할 수는 없습니다. – user1492035

+0

나는 본다. 때로는이 문제가있을 때이를 처리하기 위해 숨겨진 입력 요소를 사용합니다. 위의 업데이트를 참조하십시오. – ExceptionLimeCat

0

이것은 jquery가 필요한 솔루션이지만 클릭 한 번으로 .click 기능을 사용하여 확인란을 비활성화 할 수 있습니다. STEPNUMBER 요소의 어떤 종류의

http://jsfiddle.net/uPsm7/

관련 문제