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 = '';