• ベストアンサー

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

  • javascriptにてHTMLのhiddenエリアのvalueを変更したい

    javascriptにてHTMLのHIDDENエリアのVALUEをフォームの値が変わるごとに更新していきたいのですが、やり方がいまいちわかりません。 <input type = "text" value="10" id="aaa" onchange=aaa();/> <input type = "text" value="20" id="bbb" onchange=aaa();/> <input type = "hidden" name="abc" value="aaa"/> <script> function aaa(){ document.abc.value = document.getElementById("aaa").value+document.getElementById("bbb").value ; } </script> このような感じで考えていますが、進みません。どなたかご教授お願いいたします。

  • hiddenのvalueの値を変えたい

    おはようございます。 教えていただきたいことがあります。 HTMLのほうに <input type="hidden" name="btn" value=""> と書きます。 それでJavaSctiptのfunctionの中で document.forms[0].btn.value=funcitonの引数; とやっているのですが、hiddenのvalueの中に値が入っていないようです。 どうしてでしょうか? こういう使い方ってできないものなのでしょうか? 宜しくお願いします。

  • 子から親へチェックボックスの値を渡す

    親ウィンドウに <input type="text" size="30" value="製品名" name="disp_product" onClick="window.open('./search.php','search','menubar=no,height=500,width=800');"> というテキストフォームがあり、フォーカスされた際にsearch.phpが子ウィンドウとして開くよう設定してあります。 search.phpには <input type="checkbox" name="sample1" value="sample1">sample1 <input type="checkbox" name="sample1" value="sample2">sample2 <input type="checkbox" name="sample1" value="sample3">sample3 ・ ・ ・ <input type="checkbox" name="sample1" value="sample50">sample50 とあります。 この中でチェックされたものの値を「/」でつなげて、 親ウィンドウのテキストフォームに入力された状態にしたいと思っています。 が、一つの値を入力させるところまではできましたが、複数をとなるとできません。 どのようにしたらいいのでしょう。 現在、子ウィンドウのjavascriptは function ich(n) { window.opener.document.myForm.disp_product.value=document.getElementById("sample1").value; window.close(); } と記述してあります。 この場合は「sample1」が渡されるのはわかりますが、やはり複数を渡すというのがわかりません。

  • ラジオボタンの値取得

    お世話になります。 今回のHTML作成が初めてとなります。 今回メールフォームの作成をしていて、 流れとしては「フォーム」⇒「確認画面」⇒「メール送信」という風に作っています。 テキストについてはフォームからメールまで値が伝わるように出来たのですが、 ラジオボタンの値だけが確認画面に伝わりません。 ■メールフォーム <script language="JavaScript"> <!-- function kakunin(){ if (shopnumber.value == ""||shopname.value == ""||shainnumber.value ==""||shainname.value ==""){ alert("必須項目が入力されていません。"); } else{ window.open("kakunin.html","確認",""); } } //--> </script> </head> ・ ・ <tr> <td width="11" height="49" bgcolor="#FF99FF"></td> <td width="445" height="49"> ご購入方法<br> <input type="radio" name="Kounyu" value="購入(1)" checked>購入(1)<br> <input type="radio" name="Kounyu" value="購入(2)">購入(2)<br> <input type="radio" name="Kounyu" value="購入(3)">購入(3) ・ ・ <input id="ExecOpen" type="button" value="確認画面へ" onClick="kakunin()" name="button"> ■確認画面 <SCRIPT LANGUAGE="JavaScript"> <!-- function settext(){ document.form1.msg.value="\n"+"■注文情報■"+"\n"+ ・ ・ "【カラー】"+window.opener.Kounyu.value+"\n"+ "【購入方法】"+window.opener.Kounyu.value+"\n"+ "【質問内容】"+window.opener.Kounyu.value+"\n"; ・ ・ document.all.kakuninTable.tBodies[0].rows[8].cells[1].innerText=window.opener.Kounyu.value; document.all.kakuninTable.tBodies[0].rows[9].cells[1].innerText=window.opener.Kounyu.value; document.all.kakuninTable.tBodies[0].rows[10].cells[1].innerText=window.opener.Kounyu.value; fOBJ = document.form1; for (i=1; i<4; i++) if (fOBJ.elements[i].checked) fKounyu = fOBJ.elements[i].value; } //--> </script> ・ ・ <form method="POST" name=form1 action="mailto:xxxxxx@xxxxxx.co.jp?subject=問い合わせ" enctype="text/plain"> ・ ・ <input type="hidden" name=msg value="注文内容"> <input type="submit" value="メール送信"> <input type="button" value="戻る" onclick="javascript:window.close()" > 要所のみ抜粋ですが、上のように書いたところ ラジオボタンの値が「undefined」と出てしまいます。 ココのサイトに同じような質問がありましたが、 内容が今回挙げたものと異なっていたので 改めて質問させていただきました。 宜しくお願いします。

  • 子ウィンドウから親ウィンドウのチェックボックス

    おそれいります。 現在、子ウインドウで、window.opener.document.getElementById('text1').value='4444'; window.opener.document.getElementById('text2').value='こんにちは'; window.opener.document.getElementById('text3').value='今日は晴れ'; として、親ウィンドウで <input type="text" id="text1"> <input type="text" id="text2"> <input type="text" id="text3"> へ値をセット出来ているのですが、 この記述の流れで親ウィンドウのチェックボックスを子ウィンドウからtrueにすることはできるでしょうか。よろしくお願いします。

  • chromeでフォームの値が取得できない

    PHPでフォームに入力された値を取得して画面に表示させる処理において、 Javascriptでフォームの値を変更した場合、chromeだと変更後の値が 取得できません。 例えば、 <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="111"> <input type="hidden" name="data1" value="AAA"> <input type="submit" value="送信"> </form> というようなフォームがあったとして、Javascriptで値を <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="222"> <input type="hidden" name="data1" value="BBB"> <input type="submit" value="送信"> </form> と、変更しても送信ボタンを押して取得できる値は、上の方の値になります。 IEやFireFoxでは問題なく変更後の値が取得できるのですが、chromeだと 取得できません。 なにか解決方法があるのか、それともchromeの仕様なのかご教示いただければと 思います。 どうかよろしくお願いいたします。

  • 親ウィンドウのフォームの値を変更

    showModalDialogでオープンした子画面から、returnValueで値を返すのとは違う方法で、親ウィンドウのフォームの値を変更したいと思っています。 (その子画面をオープンすると同時に、親ウィンドウのフォーム値を変更したいため) その際に    window.opener.document.formA.hiddenA.value = "aaa" という風に記述しているのですが、「window.opener.documentはオブジェクトではありません」というエラーになってしまいます。window.openで開いた子画面からだと、この方法でできたと思うのですが・・・どうすれば変更できるでしょうか?そもそも、showModalDialogでオープンした画面から親ウィンドウの値を変更すること自体がダメなのでしょうか? よろしくお願いします。

  • フォームのvalueを変更する方法

    下記はjavaScriptで書いたものですが、javaScriptが有効になっていないと機能しないので perlで同じことをやりたいのですが、フォームのvalueを変更する方法とinnerHTMLの様なボタンをクリックするとテキストを変更する方法が分かりません。 ヒントでも良いので教えていただけませんか? <HTML> <HEAD><SCRIPT language="JavaScript"> <!-- function nextA(){ var data = document.formA.data.value; data++; document.formA.data.value = data; } //--> function nextB(){ var data = document.formB.data.value; data++; document.formB.data.value = data; document.getElementById("print").innerHTML = data; } //--> </SCRIPT> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </HEAD> <BODY> <FORM name="formA"> <input name="data" value="1"> <INPUT type="button" value="足す" onclick="nextA()"> </FORM> <FORM name="formB"> <SPAN id="print">1</SPAN> <INPUT type="button" value="足す" onclick="nextB()"> <INPUT type="hidden" name="data" value="1" > </FORM> </BODY> </HTML>

    • ベストアンサー
    • CGI
  • 現在javascriptでチェックボックスで選択した項目のvalueを

    現在javascriptでチェックボックスで選択した項目のvalueを次ページに渡すものを作成しています。 1つだけ選択すると正常に値が動くのですが、複数選択すると後に選択したほうの値だけが入ってしまいます。 複数選択した場合に選択した全てのvalueが入るようにするにはどうしたらいいでしょうか? 【1ページ目ソース】 <html> <head> <title>1page</title> </head> <body> <form name="F1" onsubmit="window.open('2page.html','_blank','');return false;"> A<input type="text" id="tanka1"> B<input type="checkbox" name="che1" id="check1" value="1">1 <input type="checkbox" name="che1" id="check1" value="2">2 <input type="checkbox" name="che1" id="check1" value="3">3 <input type="submit" value="送信" onclick=check();></form> </body> </html> 【2ページ目ソース】 <html> <head> <title>2page</title> <script> window.onload=function (){ document.F2.tanka1.value=window.opener.document.F1.tanka1.value; if (window.opener.document.F1.che1[0].checked)document.F2.check1.value=1; if (window.opener.document.F1.che1[1].checked)document.F2.check1.value=2; if (window.opener.document.F1.che1[2].checked)document.F2.check1.value=3; } </script> </head> <body> <form name="F2"> A<input type="text" id="tanka1"> B<input type="text" id="check1"> <br><br> </body> </html>

  • 親フォームのHiddenに子フォームから設定は可能ですか?

    標記の通り、opener.windowにて、親フォームと子フォームを関連付けし、 子フォームで値を入力、close.windowをする際に親フォームのtextfield等に値を設定しております。 その後、設定された値を用いて、親フォームから登録処理等を行っています。 その際に、textFieldには問題なく値がセットされるのですが、どうもHiddenにはセットされていないようです。 そもそもTextfieldも、ソースを見る限りでは内容は書き換わっておりませんでした。 やはり見た目上でのみ設定され、ソース自体はまったく変わらない。 =ソース上でのみ存在するHiddenの値を、JavaScriptで変更することは不可能、という事なのでしょうか? ------------------------------ //親フォームと関連付け function LoadSet(){  oya_win = opener.window; } //フォームclose時に値をセット function oyaMsgSet(){  oya_win.document.フォーム名.elements['Hidden_Name[]'][cnt].value = "1";←ダメ  oya_win.document.フォーム名.elements['Txt_Name[]'][cnt].value = "設定値"←OK }

専門家に質問してみよう