子ウィンドウから親ウィンドウのテキストフィールドにデータを表示する方法

このQ&Aのポイント
  • 子ウィンドウから親ウィンドウのテキストフィールドにデータを表示する方法をご教示ください。
  • 子ウィンドウのリンクをクリックすると、そのリンクの内容が親ウィンドウのテキストフィールドに表示される方法を教えてください。
  • テキストフィールドは15個あり、リンクは70個あります。リンクをクリックすると、順番にテキストフィールドに表示される方法を教えてください。
回答を見る
  • ベストアンサー

子ウィンドウから親ウィンドウのテキストフィールドにデータを表示する

子ウィンドウのリンクをクリックするとそのリンクの内容が親ウィンドウのテキストフィールドの中に表示されるというのを作りたいのですが、 親ウィンドウ <html> <head> <title>サブウィンドウから親ウィンドウのテキストフィールドにデータを表示する</title> <script language="JavaScript" type="text/JavaScript"> <!-- function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } //--> </script> </head> <body> <a href="javascript:;" onClick="MM_openBrWindow('subwindow.html','','width=160,height=160')">open</a> <form name="myFORM"> <input type="text" name="tBox"> </form> <form name="myFORM2"> <input type="text" name="tBox2"> </form> </body> </html> 子ウィンドウ <html> <head> <title>サブウィンドウから親ウィンドウのテキストフィールドにデータを表示する</title> <script Language="JavaScript"> <!-- function setData() { window.opener.document.myFORM.tBox.value="灯油ストーブ"; } function setData2() { window.opener.document.myFORM2.tBox2.value="シャワー"; } // --> </script> </head> <body> <a href="#" onClick="setData()">灯油ストーブ</a> <a href="#" onClick="setData2()">シャワー</a> </body> </html> これではリンク数とテキストフィールド数が同じじゃないといけないですよね。 作りたいのはテキストフィールドは15個あって、リンクの方は70個ぐらいあります。リンクをクリックするとテキストフィールドの中へ順々に表示させたいのですが、どうしたらよいのでしょうか? どうかアドバイスをお願いいたします。

  • izubo
  • お礼率66% (2/3)

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

  • ベストアンサー
回答No.2

2. obj=eval("document.myFORM.tBox"+count); obj.value = 値; を使う。 もしくは、document.all["tBox"+count].value = 値; とする。 ようは、countによってオブジェクトを動的に指定するということです。 3.グローバル変数:関数(function)の外で宣言します。 2の方法で値をセットするごとに、count++;と、インクリメントすれば、よいと思います。 countが15より大きくなった場合は、処理しないなどにすればよいのではないでしょうか。

izubo
質問者

お礼

torakiyojpさん丁寧な説明をどうもありがとうございます。 完全に理解をしたいので本を見ながら頑張ります。 本当にありがとうございました!

その他の回答 (1)

回答No.1

1.親画面のオブジェクトを連番にする。 tBox1,tBox2,tBox3・・・ 2.evalなどを使い、動的に親画面のオブジェクトを指定する。 3.グローバル変数を使い、親画面のどのテキストフィールドまで入力されているか保持する。 これでいけると思います。

izubo
質問者

補足

torakiyojpさん、アドバイスありがとうございます。 もしよければですが、2番と3番のもう少し詳しい説明をお願いしたいのです。 本当にお手数をかけて申し訳ございません。 よろしくお願い致します。

関連するQ&A

  • 【FireFox】サブウィンドウ表示とテキストボックス値

    メインのウィンドウにテキストボックスとボタンがあり、 ボタンをクリックするとjavascriptによりサブウィンドウ が開くHTMLがあります。 しかし、FireFoxに限り、ボタンを押してサブウィンドウ を開くとメインのHTMLのテキストボックスに入力していた 値が消えてしまいます。 ================ main.html ===================== <html> <head> <script Language="JavaScript"><!-- function openSubWin(){ window.open("sub.html","window","width=300,height=300"); } // --></script> </head> <body> <form action="#" name="myform"> <input type="text" name="no"> <button id="button1" onclick="openSubWin();" >サブウィンドウ</button> </form> </body> </html> ================== サブウィンドウ ================ <html> <body> サブウィンドウ </body> </html> IEでは問題ありませんでした。 何か解決方法はありますでしょうか? 宜しくお願いします。

    • ベストアンサー
    • HTML
  • 選択フォームへの追記について

    現在、下記のように一つのフォームの場合は、 ボタンを押すと追記されますが、 複数のフォームがある場合に、 選択されているフォームへ、 追記するには、どうすればよろしいでしょうか、 よろしくお願いいたします。 <html> <head> <script language="JavaScript"><!-- CR = String.fromCharCode(13); function setData(param) { txt = document.myFORM.myTEXT.value + param + CR; document.myFORM.myTEXT.value = txt; } // --></script> </head> <body> <form name="myFORM"> <input type="button" value="月曜日" onClick="setData('月')<br> <input type="button" value="火曜日" onClick="setData('火')"><br> <textarea rows="9" cols="20" name="myTEXT"></textarea><br> </form> </body> </html>

  • ボタンをクリックするとテキストエリアに文字が表示される。

    はじめまして 下記内容のJavaScriptを見つけたのですが これをどうにか違うものにしたいのです。 <html> <head> <TITLE>テキストエリアに複数項表示する</TITLE> <script language="JavaScript"><!-- function setChars() { str1="テキストエリアに"; str2="複数項にわたる文字を"; str3="表示します。"; document.myFORM.myTEXT.value=str1+"\n"+str2+"\n"+str3; } /--></script> </head> <body> <form name="myFORM"> <textarea name="myTEXT"rows="10"></textarea><br> <input type="button"value="複数行表示"onClick="setChars()"> </form> </body> </html> ------------------------------------------------ 例えば (月・火・水・木)とそれぞれのボタンがあるとします。 そのボタンを押すと、複数行テキストへ 月曜→○○○○ 火曜→○○○○ 水曜→○○○○ 木曜→○○○○ というように、表示させたいのです。 また、複数行テキストに入力された文字が消えず改行されて表示させたいのです。 自分でもいろいろと試してみたのですが、頭が悪く、全く思ったようにできません。 お忙しいところ大変申し訳ありませんが、 上記に記載した内容のスクリプトはありますでしょうか。 ご返答いただけると幸いです。

  • テキストボックスにいくつかのメッセージを表示させ、なおかつ個々のメッセージにリンクを張りたい

    テキストボックスにいくつかのメッセージを表示させ、なおかつ個々のメッセージにリンクを張りたいのです。 以下のスクリプトでテキストボックスにメッセージを表示させることはできるのですが、リンクの張り方がわかりません。 よろしくご教授お願いいたします。 <SCRIPT LANGUAGE="JavaScript"> <!-- smes=new Array(5); smes[0]="111111"; smes[1]="222222"; smes[2]="333333"; smes[3]="444444"; smes[4]="555555"; n=0; function Some_Mes(){ document.myForm1.myMes.value=smes[n]; n++; if(n==5){n=0} setTimeout("Some_Mes()",5000); } //--> </SCRIPT> </head> <body onload="Some_Mes()" bgcolor="#FFFFFF" link="#000000" vlink="#000000" alink="#CCCCCC"> <FORM name="myForm1"> <INPUT type="text" name="myMes" size="50" style="text-align:center"> </FORM> </body>

  • テキストボックスにスクロールする文字列を表示する。

    テキストボックスにスクロールする文字列を表示する方法を知りました。^^ これはできたのですが、同じページで、「★メッセージ1」の他に 「別の表示」をさせたいのですがどうしたらいいんでしょうか? 例えば、「★メッセージ2」。など  <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- msg="★メッセージ1     "; function scroll(){ msg=msg.substring(1,msg.length)+msg.substring(0,1); document.myform.mytext.value=msg; setTimeout("scroll()",300); } //--> </SCRIPT> </HEAD> <BODY onLoad="scroll()"> <CENTER> <FORM name="myform"> <INPUT name="mytext" size="20"> </FORM> </CENTER> </BODY> </HTML>

  • テキストフィールドへの値の表示

    JavaScript初心者です。現在、言語習得のためのドリルをおこなっておりますが、2つのテキストフィールド間での値の受け渡しがうまくいきません。具体的には、上下2つのテキストフィールドがあり、上のフィールド(摂氏)に数値を入れボタンを押したタイミングで、その値を華氏に変換して下のフィールドに結果の値が表示される、またその逆もあり、というプログラムを作成したいのです。 テキストフィールドのvalueに値を格納すればよいのかと思い、いろいろな箇所で値を格納してみたのですが、うまく動きません。アドバイスをよろしくお願いいたします。 <html> <head> <script type="text/javascript"> var cel; var fah; function cel_to_fah( ) { cel=document.getElementById("c").value; fah=(9 * cel / 5) + 32 //document.write(fah); document.input_fah.c.value=fah; //return fah; } function fah_to_cel(){ fah= document.getElementById("f").value; cel= 5 * (fah - 32) / 9; //document.write(cel); document.input_cel.f.value=cel; //return cel; } </script> </head> <body> <form id="input_fah" action="./hw06-3.html" > Celsius: <input type="text" id="c" size="20" > <input type="button" onclick="cel_to_fah()" value="To Fahrenheit"/><br/><br/> </form> /* <script language="JavaScript"> document.input_fah.c.value=cel_to_fah(); </script> */ <form id="input_cel" action="./hw06-3.html" > Fahrenheir: <input type="text" id="f" size="20"> <input type="button" onclick="fah_to_cel()" value="To Celsius" /><br/><br/> </form> /* <script language="JavaScript"> document.input_cel.f.value=fah_to_cel( ) </script> */ </body> </html>

  • Javascriptsによるテキストフィールド上の数字のインクリメントについて

    お世話になります。 現在やっているゲーム中に使うカウンターとロガーを作成することを思い立ち、HTML+PHP+MySQLにてWebの作成を開始したのですが、その入力フォームを便利にしようとしてちょと詰まってます。 フォーム内容としては テキストフィールド インクリメントボタン デクリメントボタン テキストフィールド インクリメントボタン デクリメントボタン テキストフィールド インクリメントボタン デクリメントボタン サブミットボタン という形で作成しておりまして テキストフィールドには数字を入力しますがその右側にボタンを設けてそのボタンでも数字を操作できるようにしたいのでjavascriptに手を出したのですが、どうにも上手く動かせません。 質問に文字数制限がきついのでちょと簡略化させてもらいまして <script type="text/javascript"><!-- function increment(i) { document.testform.elements["text"+i].value = eval(document.testform.elements["text"+i].value) + 1 } // --></script> </head> <body> <FORM name="testform"> <input type="text" name="text1" value=0><br> <input type="button" value="1" onClick="increment(1)"><br> </FORM> 上記では動くのですが最後のonClick=の後をできればダイレクトに"increment(text1)"にしたく色々いじっているのですがどうにも上手くいきません。 何かアドバイスを頂けないかと思うのですがいかがでしょうか。 よろしくお願いいたします。 また1のインクリメントだけではなく3増やすボタンも同時につけたいと思いますが、こちらのtipsもありましたらお教え頂きたく思います。

  • 文字をテキストフィールドに記入する。

    ボタンを押したら、その文字がテキストフィールドに記入されていく、といったスクリプトを作りたいのですが、どうもうまくいきません。 以下がとりあえず作成したスクリプトですが、ここからどのようにすれば、うまく出来るでしょうか? とりあえずしたい事は、例えば、「野菜」「肉」「魚」と順にボタンを押すと、テキストフィールドに「野菜 肉 魚」と記入されていくようにしたいのですが。 今の状態ではボタンを押す度に、その文字が変わるだけで、連続して記入されていきません。 JavaScriptは初心者ですがアドバイス宜しくお願いします。 **************************** <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- str = new Array(3); str[0] = "野菜"; str[1] = "肉"; str[2] = "魚"; function setMsg(id) { document.all.str.innerHTML = str[id]; } // --> </SCRIPT> </HEAD> <BODY> <p><textarea name="sss" rows="3" cols="40" ID="str"></textarea></p> <p><input type = "button" value="野菜" onClick="setMsg(0)" > <input type = "button" value="肉" onClick="setMsg(1)"> <input type = "button" value="魚" onClick="setMsg(2)"></p> </BODY> </HTML>

  • 小数の足し算

    Javascriptで <SCRIPT language="JavaScript"><!-- function wa() { a = eval( document.myFORM.a.value ); b = eval( document.myFORM.b.value ); s = a + b; document.myFORM.kotae.value="答え " + s; } //--></SCRIPT> </HEAD> <BODY> <FORM name="myFORM"> A =<INPUT type="text" name="a" size="3">B =<INPUT type="text" name="b" size="3"><BR> <INPUT type="text" name="kotae"><INPUT type="button" value="=" onclick="wa()"> </FORM> </BODY> としたとき A=0.1 B=0.05とすると 答え 0.15000000000000002となるのはなぜですか?

  • サブウィンドウから親ウィンドウのフォームへの書き込み

    よろしくお願いします。 やりたい事は サブウィンドウを開いて サブウィンドウのテキストボックスに入力した内容を 親ウィンドウのテキストボックスに書き込みたいのです。 以下親ウィンドウ(oya.html) <html> <head> <script type="text/javascript"> <!-- function search(){ window.open( 'sub.html' ,'childwin', "width=350,height=250,location=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes" ); } --> </script> </head> <body> <form name="mainform" method="POST" action="hoge.php"> <TABLE border="1"> <TR> <TD>A:<INPUT type="text" name="A" id="A"></TD> </TR> <TR> <TD>B:<INPUT type="text" name="B" id="B"></TD> </TR> <TR> <TD><input type="button" onclick="search();return false;" value="サブウィンドウ"></TD> </TR> <TR> <TD><center><input type="submit" name="exec" value="確認"></center></TD> </TR> </TABLE> </form> </body> </html> 以下サブウィンドウ(sub.html) <html> <head> <script type="text/javascript"> <!-- --> </script> </head> <body> <form name="subform"> <TABLE border="1"> <TR> <TD>A:<INPUT type="text" name="A" id="A"></TD> </TR> <TR> <TD>B:<INPUT type="text" name="B" id="B"></TD> </TR> <TR> <TD><input type="button" value="入力"></TD> </TR> </TABLE> </form> </body> </html> 以上です。親ウィンドウの中にformが入れ子状態になってしまうため javascriptで対応できないのかと思い質問させて頂きました。 ご教示お願いいたします。

専門家に質問してみよう