2011-02-28 2 views
1

선택 확인란 :변경하면 자바 스크립트, 내가 모든 체크 박스를 선택하여이 코드를 가지고

<html> 
<head> 
<script language="javascript"> 
function checkAll(){ 
    for (var i=0;i<document.forms[0].elements.length;i++) 
    { 
     var e=document.forms[0].elements[i]; 
     if ((e.name != 'allbox') && (e.type=='checkbox')) 
     { 
      e.checked=document.forms[0].allbox.checked; 
     } 
    } 
} 
</script> 
</head> 

<body> 
    <form> 
    <input type="checkbox" value="on" name="allbox" onclick="checkAll();"/> Check all<br /> 
    <h3>Fruit</h3> 
    <input type="checkbox" value="on" name="oranges" /> Oranges<br/> 
    <input type="checkbox" value="on" name="bananas" /> Bananas<br/> 
    </form> 
</body> 
</html> 

내가 변경하는 방법 (그리고 로직 변경하는 방법)이이 경우에 작동합니다 자바 스크립트 :

<body> 
    <form id="menu"> 
     <input type="checkbox" value="on" name="allbox" onclick="checkAll();"/> Check all<br /> 
    </form> 
    <h3>Fruit</h3> 
    <form id="select"> 
     <input type="checkbox" value="on" name="oranges" /> Oranges<br/> 
     <input type="checkbox" value="on" name="bananas" /> Bananas<br/> 
    </form> 
</body> 

답변

1

두 번째 예에는 두 가지 형식이 있습니다. 자바 스크립트에서 document.forms

배열은 0을 기준으로하기 때문에 첫 번째 양식이 forms[0]에 액세스 할 수 있습니다, 그래서 forms[1]와 함께 두 번째 : 자바 스크립트에서

, 당신은 문서의 모든 형태의 배열을 가지고있다.

예제의 확인란이 두 번째 형식이므로 두 번째 형식의 요소에 액세스하려면 JavaScript를 변경하기 만하면됩니다.

... 
    for (var i=0;i<document.forms[1].elements.length;i++) 
    { 
     var e=document.forms[1].elements[i]; 
... 

아니면 두 번째 형태는 ID를 가지고 있기 때문에,이 같은 ID를 통해 액세스 할 수 있습니다

... 
for(var i=0;i<document.getElementById("select").elements.length;i++) 
{ 
    var e=document.getElementById("select").elements[i]; 
... 
+0

은 가능한 ID 또는 클래스 또는 다른 무언가에 의해 [1] 형성하기 위해 참조하는 것입니다 나는 아직도 그것을 작동시킬 장소를 바꾸기 위하여 설치할 수 있 었는가? – JackLeo

+0

예, 양식에 ID를 추가 한 다음'document.getElementById ("formId") ' – Greg

+0

을 사용하여 액세스 할 수 있습니다.'if '명령문은 어떻게됩니까? – JackLeo

0

두 번째 페이지에는 두 개의 폼이 있지만 스크립트는 한 개의 폼만 참조합니다. 양식을 두 부분으로 나눌 필요가 없습니다 (현재 코드로 판단).

하지만 두 가지 형식을 유지하려는 경우 가능합니다. 스크립트에서 document.forms[0]document.forms[1]으로 대체하십시오.

관련 문제