2012-01-17 2 views
3

현재 4 개의 입력란, 1 개의 체크 박스 및 드롭 다운 목록이 있습니다. 확인란을 선택하면 textboexes 및 드롭 다운 목록을 비활성화하려고 시도하고 있습니다. 현재 코드가 작동하지 않지만 오류를 찾을 수 없습니다. JavaScript를 처음 사용했습니다.자바 스크립트의 확인란을 사용하여 컨트롤을 사용 중지합니다.

function enableCheckBox(phyAddressCheckBox, tb1, tb2, tb3, file1, tb4) 
{ 
    if (document.getElementById(phyAddressCheckBox).checked) 
{ 
document.getElementById('tb1').enabled = true; 
document.getElementById(tb2).enabled = true; 
document.getElementById(tb3).enabled = true; 
document.getElementById(file1).enabled = true; 
document.getElementById(tb4).enabled = true; 
} 
else 
{ 
document.getElementById(tb1).enabled = false; 
document.getElementById(tb2).enabled = false 
document.getElementById(tb3).enabled = false; 
document.getElementById(file1).enabled = false; 
document.getElementById(tb4).enabled = false; 
} 
} 

편집 나는 두 조건에 장애인에 대한 모든 속성을 설정하고 아무것도 작동하지 않습니다.

<script type="text/javascript" language="javascript"> 
function enableCheckBox(phyAddressCheckBox, tb1, tb2, tb3, file1, tb4) 
{ 
    if (document.getElementById(phyAddressCheckBox).checked) 
{ 
    document.getElementById('tb1').disabled = 'disabled'; 
document.getElementById(tb2).disabled = 'disabled'; 
document.getElementById(tb3).disabled = 'disabled'; 
document.getElementById(file1).disabled = 'disabled'; 
document.getElementById(tb4).disabled = 'disabled'; 
} 
else 
{ 
document.getElementById(tb1).disabled = 'disabled'; 
document.getElementById(tb2).disabled = 'disabled'; 
document.getElementById(tb3).disabled = 'disabled'; 
document.getElementById(file1).disabled = 'disabled'; 
document.getElementById(tb4).disabled = 'disabled'; 
} 
} 
</script> 

또한 제어 코드에 추가했습니다.

<asp:CheckBox ID="phyAddressCheckBox" runat="server" onclick="enableCheckBox(this.ID, physicalAddressTextbox, PhysicalAddress2Textbox, CityTextbox, physicalStateDropDownList,physicalZipTextbox)" style="text-align: left" /> 
+0

당신의 문제는 당신이 당신의'tb1' 인수를 인용하고 있다는 사실인가? –

+0

나는 그것을 바꿨다. 그리고 수정은 아무것도하지 않았다. – MasterP

+0

실수를 보여주십시오. 작동하지 않는 것을 설명하지 않고 있습니다. http://jsfiddle.net을 작성하고 여기에 게시하십시오. –

답변

1

처럼 할 수있는 HTML 속성과는 달리, 부울 걸립니다. https://developer.mozilla.org/en/DOM/HTMLInputElement

enableCheckBox에 전달할 변수 이름에서 ID 대신 DOM 노드를 전달하는 것처럼 보입니다.

또 다른 문제는 this.ID을 전달하는 것이며 this.id을 전달해야한다는 것입니다. 더 좋은 점은 요소 자체를 전달하는 것입니다. 이 예제를 참조하십시오 http://jsfiddle.net/mendesjuan/7ZEvk/2/

마지막 문제 (초기 예제에서)는 enabled 속성을 설정하려했으나 존재하지 않습니다. disabled 속성을 설정해야합니다.

HTML

<input type='checkbox' id='cbox' onclick="enableCheckBox(this, 'text1', 'text2', 'text3', 'sel');"/> 

<input id='text1' /> 
<input id='text2' /> 
<input id='text3' /> 
<select id='sel'> 
    <option>hello</option> 
</select> 

자바 스크립트는

// This is a lot like your function, but is less repetitive 
function enableCheckBox(cbox /*, ... ids of fields to enable/disable */){  
    for (var i = 1; i < arguments.length; i++) { 
     document.getElementById(arguments[i]).disabled = cbox.checked; 
    } 
} 
+0

내가 언급 한 내용은 동일하지 않았습니다. – MasterP

+0

@ MasterP : 응? 무엇과 같은 것이 아닌가요? –

0

장애인 속성을 사용 :

document.getElementById(tb1).disabled = 'disabled'; 
1

보십시오 : removeAttributesetAttribute

document.getElementById(tb1).disabled='disabled'; 
+0

참조 : http://stackoverflow.com/questions/1558485/why-does-disabled-true-for -html-work –

+1

disabled 속성은 true 또는 false를 취합니다. HTML 속성은 문자열을 취합니다. 나는'disabled = true 또는 false'를 설정하는데 결코 문제가 없었습니다. https://developer.mozilla.org/en/DOM/HTMLInputElement –

+0

개인적으로 jQuery를 사용하고 속성을 설정했습니다 : $ (tb1) .attr ('장애인', '장애인'). –

0

만들기 사용, 그것은 다른 disabledelementenabled입니다입니다 disabled있다. 내가이 사람들이 당신이 입력 요소에 disabled='disabled' 장애인 속성을 사용하는 말에 동의하지

function enableCheckBox(phyAddressCheckBox, tb1, tb2, tb3, file1, tb4){ 
    if (document.getElementById(phyAddressCheckBox).checked){ 
     document.getElementById(tb1).removeAttribute("disabled"); 
     document.getElementById(tb2).removeAttribute("disabled"); 
     document.getElementById(tb3).removeAttribute("disabled"); 
     document.getElementById(file1).removeAttribute("disabled"); 
     document.getElementById(tb4).removeAttribute("disabled"); 
    }else{ 
     document.getElementById(tb1).setAttribute("disabled", "disabled"); 
     document.getElementById(tb2).setAttribute("disabled", "disabled"); 
     document.getElementById(tb3).setAttribute("disabled", "disabled"); 
     document.getElementById(file1).setAttribute("disabled", "disabled"); 
     document.getElementById(tb4).setAttribute("disabled", "disabled"); 
    } 
} 
관련 문제