■
チェックボックスをJavaScriptからノード追加した場合の「checked」プロパティの挙動
<問題> ノード追加する前に「checked」プロパティを指定してもIEだとチェックされない。 IEのバグのようです・・・
<script language="JavaScript" type="text/JavaScript"> <!-- function case1() { var checkEle = document.createElement("input"); checkEle.setAttribute("type", "checkbox"); checkEle.setAttribute("checked", true); document.getElementById("case1").appendChild(checkEle); } //--> </script> <div id="case1"></div>
<対応策1> createElementにて<input checked>を指定(IE限定の方法です)
<script language="JavaScript" type="text/JavaScript"> <!-- function case2() { if(navigator.userAgent.indexOf("MSIE") != -1) { checkEle = document.createElement("<input checked>"); } else { checkEle = document.createElement("input"); } checkEle.setAttribute("type", "checkbox"); checkEle.setAttribute("checked", true); document.getElementById("case2").appendChild(checkEle); } //--> </script> <div id="case2"></div>
<対応策2> ノード追加した後に「checked」プロパティを指定
<script language="JavaScript" type="text/JavaScript"> <!-- function case3() { var checkEle = document.createElement("input"); checkEle.setAttribute("type", "checkbox"); document.getElementById("case3").appendChild(checkEle); checkEle.setAttribute("checked", true); } //--> </script> <div id="case3"></div>