- ベストアンサー
子ウィンドウのデータを親ウインドウに
子ウィンドウのチェックボックスの内容を親ウィンドウに代入 子ウィンドウのチェックボックスの複数選択内容を親ウィンドウのテキストボックスに、カンマ区切りで複数代入したい。のですが。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#2です #1の回答をふまえて、こんな感じでどうでしょう? //parent.htm <script> function openChild(f){ window.open("child.htm","_blank"); } </script> <form> <input id="hoge"><br /> <input type="button" onclick="openChild(this.form)" value="子ウィンドを開く"> </form> //child.htm <script> function sendtoParent(f){ var str=""; for (var i=0;i<f.length;i++){ if(f[i].type=="checkbox" && f[i].checked){ str+=(str==""?"":",")+f[i].value; } } opener.document.getElementById("hoge").value=str; } </script> <form> <input type="checkbox" id="data1" value="データ1"><label for="data1">データ1</label> <input type="checkbox" id="data2" value="データ2"><label for="data2">データ2</label> <input type="checkbox" id="data3" value="データ3"><label for="data3">データ3</label><br /> <input type="button" onclick="sendtoParent(this.form)" value="親に送る"> </form> parent側ではボタンを押すとwindow.openで子ウィンドを開き、 child側ではボタンを押すと、parentのhogeというidのテキストボックスに チェックボックスでチェックされたvalue値をカンマでつないで 代入しています。
その他の回答 (3)
- VCAT
- ベストアンサー率20% (16/79)
No.2に加えて、 >親ウィンドウに代入 というのも、意味不明。 ふつうプログラミングがわかる人ならはぁ?という 感じ。 自分勝手な意味づけで言葉を使わないほうがいいですよ。 特にプログラミングでは。 この手の問題は知っている人ほど略したりしないのと同じ ですね。 このカテの質問で、Javaは初心者なので、とか。
- yambejp
- ベストアンサー率51% (3827/7415)
子ウィンドウとはなにか? window.openで開いたウィンドウなら親はopenerだし フレーム関連ならparentだったりするので、 定義があいまいだと回答はブレるので意味がない 子のチェックボックスを親に代入するタイミングは? 子がチェックするたびなのか、あるボタンを押すとなのか? トリガーの設定がされていないので、なにをしていいのかわからない。 自分の中ではわかっている物も、きちんと示してもらわないと この手のものはかみ合わないですね
補足
どうも済みませんでした。 説明が不十分でした。 Javaはほんとに初めてで、このサイトで、親から子とJavaを使って値の受け渡し方法を色々参考にさせてもらっていました。 もう少し、説明内容を詳しく考えて、再度アップします。 説明不足で、ほんとにごめんなさい。
- auty
- ベストアンサー率58% (284/486)
・ <iframe>の1例です。 以下のコードを参考にしてみてください。 ------------------------------------------------------------ <html> <head> <script language="JavaScript" type="text/javascript"> <!-- function check() { var ss1=""; var ss2=""; var chs = window.iframe1.document.getElementsByName("ch1"); for (var i=0 ; i<chs.length ; i++) { ss1 += "," + chs[i].checked; ss2 += "," + chs[i].value; } if (0 < chs.length) { ss1 = ss1.substr(1); ss2 = ss2.substr(1); } document.getElementById("text1").value = ss1; document.getElementById("text2").value = ss2; } //--> </script> </head> <body> <button onclick="check()"> チェック </button> <form> <input type="text" id="text1" /><br /> <input type="text" id="text2" /> </form> <iframe src="sample0.html" frameborder="1" name="iframe1" width="400" height="200"></iframe> </body> </html> ------------------------------------------------------------ sample0.html ------------------------------------------------------------ <html> <head> <title>window sample</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <meta http-equiv="Content-Style-Type" contents="text/css" /> </head> <body bgcolor="#fff8dc"> <form> <input type="checkbox" name="ch1" value="v0" checked="checked">checkbox0</input> <input type="checkbox" name="ch1"value="v1" >checkbox1</input> </form> </body> </html>
補足
ありがとうございました。 iframeでの例、参考になりました。 説明不足で、皆さんに色々ご迷惑をお掛けしています。 window.openで開いた子ウィンドウから親ウィンドウのテキストボックスに値を代入したい。が正しい説明でした。 プログラムはまだまだ初心者なので、説明もうまく出来ません。 申し訳なく思っています。 もう1つお願いがあるのですが、今回教えて頂いたプログラムで、 sample0.html側でボタンをクリックしたときに、親のテキストボックスにデータを受け渡したいのですが、改変できますでしょうか? 教えていただけますでしょうか。 よろしくお願いいたします。
お礼
ありがとうございました。 求めていた事がこれで出来ます。 javaソースの中身は全く理解できないので、これから勉強します。 また、質問の仕方がまずくて、ご迷惑をお掛けしました。 今後とも皆さんよろしくお願いいたします。