IE11 환경에서 checkbox의 전체선택(select all or check all)이 동작하지 않는 문제
웹페이지의 테이블에 있는 체크박스들을 전체선택하는 자바스크립트 코드가 크롬에서 잘 되는데 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 = '';