2012-07-01 2 views
2

다른 브라우저에서는 작동하지 않는 것 같은 간단한 기능이 붙어 있습니다.FF로 작동하지만 FF로 작동하지만 IE에서는 작동하지 않는 PHP/JavaScript 확인 ​​/ 선택 취소

내 필요/선택 해제 다른 체크 박스 (어린이 체크 박스를) 확인하는 기능이 하나의 체크 박스 (마스터 확인란을)하는 것입니다. 마스터 확인란을 클릭하면 자신의 상태가 다른 확인란의 목록으로 전송되어야합니다. 예 : 마스터 체크 박스를 선택하지 않고 클릭하면 (선택되므로) 모든 하위 체크 박스도 선택되어야합니다.

아래의 코드는 인터넷 익스플로러에서 파이어 폭스 13.0.1 우수한 작동하지만 9

아래의 모든 코드는 동일한 파일에 있습니다

자바 스크립트

<script type="text/javascript"> 
    function toggle(source) { 
     checkboxes = document.getElementsByName('cb[]'); 
     for each(var checkbox in checkboxes) 
      checkbox.checked = checkbox.checked == true ? false : true; 
    } 
</script> 

확인란 확인을 위해 클릭하고 선택을 취소하십시오.

<td width="3%"><input name="cb_all" type="checkbox" id="cb_all" onClick="toggle(this)"></td> 

하나의 싱글 r 흐름

<td><input name="cb[]" type="checkbox" value="<?php echo $user->id;?>" id="cb[]"></td> 

나는이 솔루션은 단순한 하나가 될 것을 믿고 좋아하지만, 아주 좋은 것입니다 검색하는 반나절을 보낸 이후 약간의 도움을 할 수 있습니다. 이걸 좀 도와 주실 수 있습니까? Internet Explorer가 getElementsByName라는 방법이 없기 때문에

+0

에서 더 많은 정보를 얻을 수 getElementsByTagName를 사용하고 각각을 확인하는 것입니다. 그것을 확인하고 게시 한 내용이 문제가있는 실제 코드와 정확히 일치하는지 확인할 수 있습니까? – Pointy

+0

또한 부울 값을 토글하는 더 간단한 방법도 있습니다 : checkbox.checked =! checkbox.checked;' – Pointy

+0

Hello Pointy. 나는 두 번 확인했다. 정확히 같다. –

답변

1

이 때문이다. 해결 방법은 당신이 for` 루프가 모든 브라우저에서 구문 오류가 될 것`그건 http://webbugtrack.blogspot.com/2007/08/bug-411-getelementsbyname-doesnt-work.html

+0

MSDN 설명서에 IE에 getElementsByName()이 * 있습니다. 나는 너와 똑같이 생각했다. – Pointy

+0

링크에 대해 Skatox에 감사드립니다. 나는 모양을 가질 것이다 –

+0

나는 적어도 나를 위해 일하는 답을 찾았다.

관련 문제