꿈꾸는 시스템 디자이너

IE11 환경에서 checkbox의 전체선택(select all or check all)이 동작하지 않는 문제 본문

Web Service

IE11 환경에서 checkbox의 전체선택(select all or check all)이 동작하지 않는 문제

독행소년 2017. 7. 10. 11:59

웹페이지의 테이블에 있는 체크박스들을 전체선택하는 자바스크립트 코드가 크롬에서 잘 되는데 IE11에서만 잘 안되서 한참 애먹었다.


      function toggleCheckBoxs() {

         

         var checkboxes = document.getElementsByName('selectedInstrument[]');

         var button = document.getElementById('toggle');

         

         if (button.value == 'select') {

            

            // for (var i in checkboxes) {

            for(var i = 0; i<checkboxes.length;i++){

               // checkboxes[i].checked = 'FALSE';

               checkboxes[i].checked = "true";

               

            }

            button.value = 'deselect';

         }

         else {

            // for (i in checkboxes) {

            for(var i = 0; i<checkboxes.length;i++){

                checkboxes[i].checked = '';

               //checkboxes[i].checked = "false";

            }

            button.value = 'select';

         }

      } 


selectedInstrument[]라는 checkbox들이 존재하는 페이지 이고, 복수이므로 당연히 getElementsByName으로 해당 객체를 얻어온다.


두가지가 문제였는데

가장 큰 문제는 IE에서는 for(var i in checkboxes)를 인식하지 못한다.

그래서 for(var i = 0; i< checkboxes:length; i++)로 바꿔주었다.


체크박스를 설정하는 방식도 한정적이다.

체크 설정 =>  checkboxes[i].checked = "true";

체크 해제 => checkboxes[i].checked = '';

Comments