これはハマった><
こんな感じで checkbox の要素を JS で作ったのだけど、いっこうにチェックされなかった。
var input = document.createElement('input'); input.type='chekbox'; if (なんかの判定) { input.checked = true; } element.appendChild(input);
システムの一部なのでここまでシンプルではなかったのでだけど、最終的にはこんな感じまでブレイクダウンして再現した。
画面上でクリックすればチェックが入るのだけど、DOMを編集する過程いくらやってもチェックボックスが反応しない。挙げ句に、アドレスバーで
javascript:var input = document.getElementById('id'); input.checked = true;
みたいにやっても反応しない。
いったいどういうことなのか。
できるだけシンプルな形で試してみよう。・・・だめだ、動かない。checked の使い方が悪いのか? いや、そんなことはないようだ。
FireFox で確認してみよう。・・・こいつ、動くぞ!/(^o^)\
結論
リアルに3〜4時間かけて得た答えは「IEだから」「innerHTML使え」だとさ。m9(^Д^)プギャー
ブラウザの相手をするにはバッドノウハウの蓄積が必要だということを痛感した一日だった。。。
そして IE6 は即刻爆発しろ!