2013-04-22 3 views
1

원시 자바 스크립트를 사용하는 레거시 페이지가 있습니다 (브라우저 차이가없는 JS 라이브러리 없음). 동적으로이 같은 체크 박스를 생성합니다프로그래밍 방식으로 IE 10의 체크 박스 체크 속성을 선택했습니다.

function createCheckbox(checkboxName, isChecked, onClickHandler) 
{ 
    var checkboxId = checkboxName + 'ChkBx'; 
    var chkbx; 

    if(Ext.isIE) 
    { 
     // Following code does not work in IE10 when NOT using compatibility view 
     // Throws JS error. Worked in IE9. 
     //if (isChecked) 
     //{ 
     // chkbx = document.createElement('<input id="' + checkboxId + '" type="checkbox" name="' + checkboxName + '" value="true" checked="checked" className="checkbox" />'); 
     //} 
     //else 
     //{ 
     // chkbx = document.createElement('<input id="' + checkboxId + '" type="checkbox" name="' + checkboxName + '" value="true" className="checkbox" />'); 
     //} 

     // Following code does not work in IE10 when using compatibility view 
     // isChecked == true does not product checked checkbox 
     chkbx = document.createElement('input'); 
     chkbx.id = checkboxId; 
     chkbx.name = checkboxName; 
     chkbx.value = 'true'; 
     chkbx.type = 'checkbox'; 
     chkbx.checked = isChecked; 
     chkbx.className = 'checkbox'; 
    } 
    else 
    { ... } 

    return chkbx;  
} 

내가 IE10,의 createElement()에서 더 이상 정교한 문자열 매개 변수를 받아들이는 것을 이해합니다. 그래서 위의 코드를 변경했습니다. 왜 내가 이해하지 못하는 이유는, checked 속성을 true로 설정하는 것을 존중하지 않는다는 것입니다. 체크 박스를 선택해야한다는 것을 나타내는 다른 방법은 무엇입니까?

+0

그게 잘 작동합니다; "isChecked"의 값은 정확히 무엇입니까? – Pointy

답변