入力フォームの隠し入力とチェックボックスに新しい値を割り当てようとしました。Firefoxではうまくいくのですが、IEではうまくいきません(IE7を使用しています)。どなたか、私のコードのどこが間違っているのかご存知ですか?
HTMLです。
<input type="hidden" id="msg" name="msg" value="" style="display:none"/>
<input type="checkbox" name="sp" value="100" id="sp_100">
Javascriptです。
var Msg="abc";
document.getElementById('msg').value = Msg;
document.getElementById('sp_100').checked = true;
貼り付けたコードは動作するはずですが...。何か他に見えていないものがあるはずです。
Check this out。私の場合はIE7で正常に動作しています。投稿すると、URLで渡された変数が表示されます。
Jin Yong - IE has an issue with polluting global scope with object references to any DOM elements with a "name" or "id" attribute set on "initial" page load.
そのため、変数名に起因する問題が発生する可能性があります。
この方法を試して、うまくいくかどうか確認してください。
var someOtherName="abc";
// ^^^^^^^^^^^^^
document.getElementById('msg').value = someOtherName;
document.getElementById('sp_100').checked = true;
あなたのオリジナルのコードでは)IEがinputの値をその実際の要素への参照に設定しようとする(エラーを無視する)が、新しい値がないままになっている可能性があります。
IE6/IE7では、オブジェクトの名前付けにケースは関係ないことを覚えておいてください。IEでは、"foo" "Foo" と "FOO" はすべて同じオブジェクトであると考えます。