重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

子ウィンドウのチェックボックスの内容を親ウィンドウに代入
子ウィンドウのチェックボックスの複数選択内容を親ウィンドウのテキストボックスに、カンマ区切りで複数代入したい。のですが。

A 回答 (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値をカンマでつないで
代入しています。
    • good
    • 0
この回答へのお礼

ありがとうございました。
求めていた事がこれで出来ます。
javaソースの中身は全く理解できないので、これから勉強します。
また、質問の仕方がまずくて、ご迷惑をお掛けしました。

今後とも皆さんよろしくお願いいたします。

お礼日時:2008/06/23 09:05

No.2に加えて、


>親ウィンドウに代入
というのも、意味不明。
ふつうプログラミングがわかる人ならはぁ?という
感じ。

自分勝手な意味づけで言葉を使わないほうがいいですよ。
特にプログラミングでは。
この手の問題は知っている人ほど略したりしないのと同じ
ですね。
このカテの質問で、Javaは初心者なので、とか。
    • good
    • 0

子ウィンドウとはなにか?


window.openで開いたウィンドウなら親はopenerだし
フレーム関連ならparentだったりするので、
定義があいまいだと回答はブレるので意味がない

子のチェックボックスを親に代入するタイミングは?
子がチェックするたびなのか、あるボタンを押すとなのか?
トリガーの設定がされていないので、なにをしていいのかわからない。

自分の中ではわかっている物も、きちんと示してもらわないと
この手のものはかみ合わないですね

この回答への補足

どうも済みませんでした。
説明が不十分でした。
Javaはほんとに初めてで、このサイトで、親から子とJavaを使って値の受け渡し方法を色々参考にさせてもらっていました。
もう少し、説明内容を詳しく考えて、再度アップします。
説明不足で、ほんとにごめんなさい。

補足日時:2008/06/22 12:14
    • good
    • 0

・ <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側でボタンをクリックしたときに、親のテキストボックスにデータを受け渡したいのですが、改変できますでしょうか?
教えていただけますでしょうか。
よろしくお願いいたします。

補足日時:2008/06/22 12:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!