• 締切済み

JavaScript暦1ヶ月未満のペーペーです。

JavaScript暦1ヶ月未満のペーペーです。 JavaScriptでテキストとラジオボタンの値を同時に別ページへ渡すものを作っているのですが、過去の質問とは微妙に違っていて困っています。 現在ページを2つ作っていて、1ページ目で入力した値(選択したラジオボタンの値)を2ページ目に渡したいのですが、うまく渡せないでいます。 【1ページ目ソース】 <html> <head> <title>1page</title> </head> <body> <form name="F1" onsubmit="window.open('2page.html','_blank','');return false;"> テキスト<input type="text" id="tanka1"> ラジオ<input type="radio" name="kosu1" id="rad1" value="1">1 <input type="radio" name="kosu1" id="rad1" value="1">2 <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; document.F2.rad1.value=window.opener.document.F1.rad1.value; } </script> </head> <body> <form name="F2"> 1page目テキスト<input type="text" id="tanka1"> 1page目ラジオ<input type="text" id="rad1"> </body> </html> これで実行すると、テキストの方はきちんと値が入るのですが、ラジオのほうが「undefined」と入ってしまいます。 正常に、選んだラジオボタンのvalueが入るようにするにはどうしたらいいでしょうか?

みんなの回答

noname#111181
noname#111181
回答No.2

"2page.html" のラジオボタンの取得処理を下記のようにしてください。 if (window.opener.document.F1.kosu1[0].checked) document.F2.rad1.value=1; if (window.opener.document.F1.kosu1[1].checked) document.F2.rad1.value=2;

aia2570
質問者

お礼

ありがとうございます。 こんなシンプルにやれるんですね・・・ ありがたく使わせて頂きますm(o・ω・o)m

  • markzein
  • ベストアンサー率0% (0/1)
回答No.1

【2ページ目ソース】のところで、ラジオボタンの値を取得するところがポイントです。 グループ内のラジオボタンを個々に調べて、チェックされたものを見つけて値を拾います。 <script> window.onload=function (){ document.F2.tanka1.value=window.opener.document.F1.tanka1.value; ///////////////////////////////////////////////////////////////// for ( i = 0; i < window.opener.document.F1.rad1.length; i++ ) { if ( window.opener.document.F1.rad1[i].checked ) { document.F2.rad1.value= window.opener.document.F1.rad1[i].value; } } ///////////////////////////////////////////////////////////////// } </script> お試しください。

aia2570
質問者

お礼

ありがとうございます。 試してみましたが・・・なぜかうまくいきません。。 どちらのラジオボタンを選択しても1が代入されてしまいます(´・ω・`)

関連するQ&A