• ベストアンサー

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

おそれいります。 現在、子ウインドウで、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にすることはできるでしょうか。よろしくお願いします。

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

  • ベストアンサー
  • mikan3b
  • ベストアンサー率81% (9/11)
回答No.1

はい、可能です。 親ウィンドウのチェックボックスのIDを「check1」とすると、以下のコードでtrueにすることができます。 ```javascript window.opener.document.getElementById('check1').checked = true; ``` このコードは、子ウィンドウから親ウィンドウのdocumentオブジェクトを取得し、その中でチェックボックスのIDを指定して、checkedプロパティをtrueに設定しています。 具体的なコードとしては、以下のようなコードで実現できます。 ```html <html> <head> <title>子ウィンドウ</title> </head> <body> <script> function setCheckbox() { // 親ウィンドウのチェックボックスをtrueにする window.opener.document.getElementById('check1').checked = true; } </script> <button onclick="setCheckbox()">チェックボックスをtrueにする</button> </body> </html> ``` このコードでは、ボタンをクリックすると、setCheckbox()関数が呼び出されます。setCheckbox()関数では、親ウィンドウのdocumentオブジェクトを取得し、その中でチェックボックスのIDを指定して、checkedプロパティをtrueに設定しています。 親ウィンドウでチェックボックスを表示するには、以下のようなコードで実現できます。 ```html <html> <head> <title>親ウィンドウ</title> </head> <body> <input type="checkbox" id="check1"> </body> </html> ``` このコードでは、チェックボックスを表示しています。チェックボックスのIDは「check1」です。 このコードを実行すると、子ウィンドウのボタンをクリックすると、親ウィンドウのチェックボックスがtrueになります。

spider32
質問者

お礼

解決いたしました。有難うございます。

Powered by GRATICA

関連するQ&A

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

    親ウィンドウに <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」が渡されるのはわかりますが、やはり複数を渡すというのがわかりません。

  • window.openで開いた子ウィンドウから親ウィンドウのjavascriptを実行するには

    window.openで開いた子ウィンドウから親ウィンドウのjavascriptを実行するにはどうしたらよいのでしょうか。 子ウィンドウから <INPUT TYPE="button" value=\"実行\" onClick=opener.document.jikkou();> や <INPUT TYPE="button" value=\"実行\" onClick=opener.jikkou();> 等のボタンを作ってみましたが、無反応でした。 すいません。宜しくお願いします。

  • 子ウィンドウを閉じるとき、親ウィンドウのテキストボックスにカーソルを移動したい。

    子ウィンドウを閉じるとき、親ウィンドウのテキストボックスにカーソルを移動したい。(java) <script> function openChild(f){ window.open("child2.htm","_blank"); } </script> <form> <input id="text1"><br /> <input id="text2"><br /> <input type="button" onclick="openChild(this.form)" value="子ウィンドを開く"> </form> 子ウィンドを閉じる <input type="button" onclick="window.close()" value="閉じる"> 親ウィンドウのテキストボックス(id="text2")にカーソルを移動したいのですが。 <input id="text2"><br />

  • IEで子ウインドウから親ウインドウへのタグの追加

    IEで子ウインドウから親ウインドウへのタグの追加 【やりたいこと】 1.親ウインドウからポップアップで子ウインドウを出して、その子ウインドウ内でチェックしたものを親ウインドウの<select>タグに<option>タグとして付け加えること。 2.同じくhiddenタグでチェックしたもののvalueを持たせたいということ。 とあるサイトを参考に、firefoxではこの挙動ができました。 ただ、IEだと親ウインドウに何も反映されなくて困っています。 以下ソース(一部)です。 --親html-- <head> <script type="text/javascript"> <!-- var w = window; function openWin(url) { if ((w == window) || w.closed) { w = open(url, "_blank", "width=800,height=600,scrollbars=yes"); } else { w.focus(); } return(false); } // --> </script> </head> <body> <select id="selectArea" size="5" name="search_area" class="list_box"> (ここに1.) </select> <div id="search_area"> (ここに2.) </div> <input type="button" onClick="return openWin('checkbox.php')" value="チェックをつける"> </body> --子html-- <input type="checkbox" name="department" value="c1" onclick="BoxCheckChild(this)"> <input type="checkbox" value="t1" onclick="BoxCheckChild(this)"> <input type="checkbox" value="s1" onclick="BoxCheckChild(this)"> 子htmlでは、onclickでチェックしたチェックボックスに対して処理をしています。 --javascript-- function appendOptionLast(str, value){//親ウインドウに<option>として追加(1.) var elOptNew = window.opener.document.createElement('option'); elOptNew.text = str; elOptNew.value = value; var elSel = window.opener.document.getElementById('selectArea'); var nstr = "<option value=aaa>test</option>" try { elSel.add(elOptNew, null); } catch(ex) { elSel.add(elOptNew) } function make_hidden(value){//hiddenタグ作成、追加(2.) var q = document.createElement('input'); q.type = 'hidden'; value = value.slice(1); if(type == "c"){ q.name = 'department[]'; }else if(type == "t"){ q.name = 'theme[]'; }else if(type == "s"){ q.name = 'index[]'; } q.value = value; window.opener.document.getElementById("search_area").appendChild(q); } となっています。 ソース、説明ともにわかり辛いかもしれませんが、どなたかわかる方いたら助けてもらえるとありがたいです。

  • 子ウインドウから親ウインドウのselectボックスを変更したい

    行いたいことは郵便番号による住所検索です。 PerlとMysqlをつかって郵便データは取得します。 親ウインドウのテキストボックスに郵便番号を入れて、子ウインドウで都道府県と以下住所を表示させます。 入力ボタンというものを押すと、親ウインドウの都道府県selectボックスと住所テキストボックスに入力させたいというロジックです。 ////////親フォーム////////////// <SCRIPT language="JavaScript"> function OpenZipWin1(){ var Myzip =document.fm.zip1.value; window.open("hoge.cgi?mode=zip_search&zipcode=" + Myzip,"new","width=500,height=270"); } </SCRIPT> <form action="hoge.cgi" method=post name="fm"> <input type=text name=zip1 size=10 maxlength=8 value=""><a href="javascript:void(0);" onClick="OpenZipWin1();">検索</a><br> <select name="pref"> <option value="">都道府県選択</option> <option value="1">北海道</option> <option value="2">青森県</option> <option value="3">岩手県</option> <option value="4">宮城県</option> <option value="5">秋田県</option> <option value="6">山形県</option> ・・・・ <option value="47">沖縄県</option> </select> <input type=text name=add value="" size=60> </form> ////////子フォーム////////////// <SCRIPT language="JavaScript"> function setForm() { var Mypref = document.subForm.pref.value; window.opener.document.?????????? = Mypref; var Mycity = document.subForm.city.value; window.opener.document.fm.add.value = Mycity; } //--> </SCRIPT> <p>検索結果</p> <form name="subForm"> <table border="0" cellpadding="5"> <tr> <td nowrap>郵便番号</td> <td>110-0001</td> </tr> <tr> <td>住所</td> <td> <input type="text" name="pref" size="20" value="東京都"> <input type="text" name="city" size="60" value="台東区 谷中"></td> </tr> </table></form> <p align=center><input type="submit" value="入力" onclick="javascript:setForm();self.close()"></p> <p align=center><a href="#" onclick="javascript:window.close()">閉じる</a></p> 問題なのは子ウインドウは都道府県が日本語で、親ウインドウはselectのvalueは数値、要素の方が日本語なのです。 子ウインドウの値を親ウインドウの要素の方と合わせたいのです。 上記の子ウインドウのJavaScriptで window.opener.document.?????????? = Mypref; の部分でうまくすればいいのかな・・・とは考えてみたもののうまくいきません。 恐れ入りますがご教授おねがいできませんでしょうか。 よろしくお願いいたします。

  • 現在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>

  • フレームを使ったサブウィンドウから親ウィンドウへのデータセット

    下記のソースをフレームを使わないサブウィンドウから実行すると うまく親ウィンドウの該当項目へセットできますが、 フレームをつかったサブウィンドウからだとうまくセットできません。 ご存知の方おりませんか? よろしくお願いします。 function setData(theData) { window.opener.document.MAIN_FORM.DATA0.value = theData[0]; window.opener.document.MAIN_FORM.DATA1.value = theData[1]; window.opener.document.MAIN_FORM.DATA2.value = theData[2]; window.opener.document.MAIN_FORM.DATA3.value = theData[3]; window.opener.document.MAIN_FORM.DATA4.value = theData[4]; } <input type="button" onClick="setData(Array('000','111','222','333','444'))" value="選択">

  • window.onloadの実行と抑止の分岐方法

    親ウィンドウと子ウィンドウの間でデータを共有したいと思い、下記のソースを作成しました。 親ウィンドウで任意の文言を入力し、子ウィンドウを開くをクリックすると、子ウィンドウに値が渡されます。 子ウィンドウで任意の文言を入力し、値をセットをクリックすると、親ウィンドウに値が渡されます。 しかし親ウィンドウから子ウィンドウで値を渡した後、任意の文言を入力し送信ボタンを押すと、index.phpで子ウィンドウの変更後の文言をテキスト欄の値をセットしたあと、 子ウィンドウのwindow.onloadが走って値を追加してしまいました(下記のソースは簡易的なもののため、子ウィンドウのテキスト欄には<input type="text">を使用しておりますが、 実際には<select multiple="multiple">を使用しているため、下記のような表示になります)。 1. 親ウィンドウから子ウィンドウにセットされたテキストの例 あああ 2. 子ウィンドウで変更した文言 いいい 3. 送信ボタンクリック 子ウィンドウのselectには下記が表示されます。 いいい あああ その為、子ウィンドウでsubmitした際は、window.onloadを抑止できれば良いと思ったのですが、具体的にどう記述すればよいかわかりませんでしたので、 アドバイスいただける方がいらっしゃいましたら、ご教示の程、よろしくお願いします。 また、window.onloadの抑止にこだわっているわけではありません。 上記の送信ボタンクリック時、子ウィンドウのselectの中が「いいい」と表示される方法があれば大丈夫です。 【親ウィンドウ(index.html)】 <script type="text/javascript"> <!-- function window_open() { window.open('sub.html', null, 'width = 640, height = 480, scrollbars = yes' ) }; //--> </script> </head> <body> <form action="index.php" method="post" name="form00" id="form00"> <a onclick="window_open()" href="javascript:void(0)">子ウィンドウを開く</a> <br /> <input type="text" name="text00" value="" /> </form> </body> 【子ウィンドウ(sub.html)】 <script type="text/javascript"> <!-- window.onload = function() { if(window.opener) { document.form01.text01.value = window.opener.document.form00.text00.value; } } function Set() { window.opener.document.form00.text00.value = document.form01.text01.value; window.close(); } //--> </script> </head> <body> <form action="index.php" method="post" name="form01" id="form01"> <input type="text" name="text01" /> <input type="button" onclick="Set()" value="値をセット" /> <input type="submit" value="再読込" /> </form> </body> 以上、よろしくお願いします。

  • 親ウィンドから子ウィンドへのデータの受け渡し方法

    親ウィンドから子ウィンドへのデータの受け渡し方法で以下に簡単に記述致します。 親 <input・・・name="IN1"・・・> <input・・・name="IN2"・・・> <input・・・name="IN3"・・・> 子 for (i=1,i<=3,i++) { window.opener.document.form名.IN'+i+'.value = eval('form.IN'+i+'.value'); } <form・・・ <input ・・・name="IN1"・・・> <input ・・・name="IN2"・・・> <input ・・・name="IN3"・・・> として渡したいのですが、 window.opener.document.form名.IN'+i+'.valueの"+i+"の指定でエラーとなってしまいます。エラー内容は『'+i+の'の後に;がありません』です。どのように指定すれば宜しいのでしょうか?

  • ウィンドウサイズの変更を滑らかに取得したい

    <html> <head> <script type="text/javascript"> function test(){ width = document.body.clientWidth; height = document.body.clientHeight; document.getElementById("haba").value=width; document.getElementById("takasa").value=height; } </script> </head> <body onload="window.setInterval('test()',1);"> 幅<input size="20" type="text" id="haba"/> 高さ<input size="20" type="text" id="takasa"/> </body> </html> -------------------------------------------------------------- 以上のような、ブラウザのウィンドウサイズを取得する コードを書いたのですが、滑らかに高さと幅が取得出来ずに困ってます。 イメージとしては、ウィンドウサイズをマウスで変更すると 高さと幅の数値がもっと滑らかに細かく変化するように したいのです。 どなたか回答お願いします。

専門家に質問してみよう