• ベストアンサー

Firefoxでvalueの値を変更できない

フォームの値を通常 <input name="Reload" type="hidden" value="1" id="Reload" /> で飛ばしていますが、サブウィンドウで操作後識別のために window.opener.document.getElementById('Reload').value=2 と値を変更するようにしていました。 しかし、IE6では動くのですがFirefoxでは値が変更できずに悩んでいます。 良い解決法があればよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.1

WinXP SP2 Firefox 2.0.0.14 では現象を確認できませんでした。 一度、全てのソースを開示してみてはどうでしょうか?

vivasmile
質問者

補足

ご指摘ありがとうございます。 フォームのアクションは同じページで、aspにて <input name="Reload" type="hidden" value="1" id="Reload" /> valueの値(value="1")をリクエストで受けて、動作を変更しています。 サブウィンドウ側でvalueの値を(value="2")に書き換えるよう下記のように記述しています。 '=============================================================== <script> window.opener.document.getElementById('form1').submit(); window.opener.document.getElementById('Reload').value=2; window.opener.document.getElementById('form1').submit(); //ページをリロード window.close(); </script> '=============================================================== IEではvalueの値2で受け取れているのですが、Firefox では1しかかえってきませんでした。

その他の回答 (1)

  • HIRSYU
  • ベストアンサー率51% (45/87)
回答No.2

// この時点では、Reloadの値が1 window.opener.document.getElementById('form1').submit(); //Reloadの値が1で送信 // submitしている時点で、以下の処理では、window.openerが読み込み中の恐れ在り。(サーバーやローカルや回線の環境次第、又はform1のaction次第で関係ない) // この時点では、Reloadの値は1だろうが、window.openerが読み込み中で、値を参照できない恐れ在り。 window.opener.document.getElementById('Reload').value=2;//window.openerが読み込み中で、値を設定できない恐れ在り。 // valueを正しく設定できれば、この時点では、Reloadの値が2。 window.opener.document.getElementById('form1').submit();//Reloadの値が1又は2で送信(又はwindow.openerが読み込み中で送信できない) //submit完了後は初期値の1に戻るだろう

vivasmile
質問者

お礼

解説ありがとうございます。 お陰で様で下記の様に修正し、成功することができました。 <script> window.opener.document.getElementById('Reload').value=2; window.opener.document.getElementById('form1').submit(); window.opener.document.getElementById('form1').submit(); //ページをリロード window.close(); </script>

関連するQ&A