【最大10000ポイント】当たる!!質問投稿キャンペーン!

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

A 回答 (1件)

こんな感じではどうでしょうか。



function ich(n) {
//window.opener.document.myForm.disp_product.value=document.getElementById("sample1").value;
var valueArray = [], checkboxes = document.getElementsByName('sample1');
for (var i = 0, len = checkboxes.length; i < len; i++) {
if (checkboxes[i].checked) valueArray.push(checkboxes[i].value);
}
window.opener.document.myForm.disp_product.value = valueArray.join('/');
window.close();
}
    • good
    • 0
この回答へのお礼

ありがとうございました。
お礼が遅くなりましたが、無事解決出来ました。

お礼日時:2011/08/03 14:08

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qネストされたチェックボックスの子孫要素にチェックを入れると、親要素にもチェックされる

<ul>
<li><input type="checkbox" name="A" value="">親A
<ul>
<li><input type="checkbox" name="B" value="" class="second">子A
<ul><li><input type="checkbox" name="C" value="" class="second">孫A</li>
</li>
</ul>
</li>
</ul>
<ul>
<li><input type="checkbox" name="A" value="">親B
<ul>
<li><input type="checkbox" name="B" value="" class="second">子B
<ul><li><input type="checkbox" name="C" value="" class="second">孫C</li>
</li>
</ul>
</li>
</ul>



3 階層あり、親、子や孫にチェックを入れた時に、その全てに連動してチェックされる方法は
ありますでしょうか ?
親だけチェックして子や孫もチェックされるのはできるのですが、逆ができません。
ちなみに同じつくりのものが下に続くのですが、A と B は連動せず、
ID NAMEも同じものです。

どうぞ、わかる方お願いいたします。

<ul>
<li><input type="checkbox" name="A" value="">親A
<ul>
<li><input type="checkbox" name="B" value="" class="second">子A
<ul><li><input type="checkbox" name="C" value="" class="second">孫A</li>
</li>
</ul>
</li>
</ul>
<ul>
<li><input type="checkbox" name="A" value="">親B
<ul>
<li><input type="checkbox" name="B" value="" class="second">子B
<ul><li><input type="checkbox" name="C" value="" class="second">孫C</li>
</li>
</ul>
</li>
</ul>



3 階層あり、...続きを読む

Aベストアンサー

構造さえ確定できればできないことはないと思いますが
親をチェックして、子孫にチェックがはいる仕組みなら
孫や子をチェックすると親や子にチェックがはいるとなると
常にすべて同じチェック状態になっちゃいますけどそれって意味あります?

つまり、
親をチェック→子・孫にチェックがはいる
子をチェック→親・孫にチェックがはいる
孫をチェック→親・子にチェックがはいる

つまりどこか一つのチェックで十分では?

Q一つのチェックボックスのON/OFFに応じて他の複数をON/OFFに

昨日の質問した下記の関連で再質問です。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1765687


親1に対し、子1~4と、合計5つのチェックボックスがあり、
親のチェックOFF ⇒ 子1~4をdisableに、
子のチェックON ⇒ 子1~4をactive としたいのですが、
#4さんのご回答を適用すると、上記5つのチェックボックス以外も
全てdisableの対象になってしまいます。

他方、自分の元質問のソースを改造しようとも思いましたが、
子1~4のname属性が全て違う名前のため、そのままでは使えません。

ついでに(些細なことですが)
子1~4の全てがONにされた時に、親がOFFなら自動でONにしたいです。
テンプレートは下記ですが、よろしくお願い致します。

<html>
<head>
<script language="javascript" type="text/javascript">
// ■■■■
</script>
</head>
<body>
<form id="query" name="query">
<input type="checkbox" name="oya" value="1" checked>親
<input type="checkbox" name="ko1" id="ko1" value="1" checked>子1
<input type="checkbox" name="ko2" id="ko2" value="1" checked>子2
<input type="checkbox" name="ko3" id="ko3" value="1" checked>子3
<input type="checkbox" name="ko4" id="ko4" value="1" checked>子4
</form>
</body>
</html>

昨日の質問した下記の関連で再質問です。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1765687


親1に対し、子1~4と、合計5つのチェックボックスがあり、
親のチェックOFF ⇒ 子1~4をdisableに、
子のチェックON ⇒ 子1~4をactive としたいのですが、
#4さんのご回答を適用すると、上記5つのチェックボックス以外も
全てdisableの対象になってしまいます。

他方、自分の元質問のソースを改造しようとも思いましたが、
子1~4のname属性が全て違う名前のため、そのままでは使えません。

...続きを読む

Aベストアンサー

ソースによっては nameがko+nで1から連番になっているとかだったら単純にループで回せるかも。
------------------------------------------------------
<html>
<head>
<script language="javascript" type="text/javascript">
function autochk(p,name){
var f = p.form;
var el;
for(var prop in f){
if(prop.toString().substr(0,2)==name){//名前がname('ko')で始まるもの
el=f.elements[prop];
if(el.type=="checkbox"){//このチェックは省略してもいいかも
el.disabled = !p.checked;
}
}
}
}
</script>
</head>
<body>
<form id="query" name="query">
<input type="checkbox" name="oya" value="1" checked checked onclick="autochk(this,'ko');">親
<input type="checkbox" name="ko1" id="ko1" value="1" checked>子1
<input type="checkbox" name="ko2" id="ko2" value="1" checked>子2
<input type="checkbox" name="ko3" id="ko3" value="1" checked>子3
<input type="checkbox" name="ko4" id="ko4" value="1" checked>子4
<input type="text" name="other" value="その他">
</form>
</body>
</html>

ソースによっては nameがko+nで1から連番になっているとかだったら単純にループで回せるかも。
------------------------------------------------------
<html>
<head>
<script language="javascript" type="text/javascript">
function autochk(p,name){
var f = p.form;
var el;
for(var prop in f){
if(prop.toString().substr(0,2)==name){//名前がname('ko')で始まるもの
el=f.elements[prop];
if(el.type=="checkbox"){//このチェックは省略して...続きを読む

QJavaScriptde途中で、「exit」するには?

function kensaku(){
s_data = document.kaiin_form.input_name.value;

if(!s_data){ alert("キーワードを入れて下さい!"); }

if(s_data != dumy){ ...... }
for(i=st_no;i<=n;i++){
......省略.................;
.......省略................}
}

----------------------------------
3行目で表示されたアラートをOKで閉じても、4行目以下が実行されてしまいます。
3行目でexitするにはどうすれば良いでしょうか?

Aベストアンサー

>関数(kensaku())からは抜けられませんでした。
そうですね、勘違いしていました、f(^^;
すみません。
if(!s_data){
alert("キーワードを入れて下さい!");
return;
}
ですね。

Qwindow.openerを使っての操作

JavaScript初心者です。

JavaScriptのwindow.openerを使って、
子ウィンドウから親ウィンドウに値を渡す、
ということをしたいのですが、うまくできません。
実装したい環境はIE6です。。

こちらのページのサンプルにあるソースをそのまま貼り付けてみても動きませんでした。
http://shoyu-ramen23.jugem.jp/?eid=203
ただ、サンプルはこちら、と書いてあるページのものは動きます。
(実際記載されているソースとは違うのではないかと思いますが)
 *ちなみにGoogleChromeでも同じ結果でした。ソース自体何か誤りがあるのでしょうか

サンプルのように子ウィンドウにある選択肢を一つクリックすると
その値が親ウィンドウの特定のテキストエリアに渡される
・・というものすらうまくできないのですが、

子ウィンドウでチェックボックス式の選択肢を用意して、
子ウィンドゥ側で「選択」等の決定ボタンが押されたときに、チェックが入っている選択肢の内容が
カンマで区切られて親ウィンドウのテキストエリアに渡される・・・
というものを作成したいのです。
 子ウィンドウチェックボックスで、りんごとみかんとバナナにチェックが入っていれば
 親ウィンドウのテキストエリアには「りんご,みかん,バナナ」といったふうにです。

こういったものは作成できるものなのでしょうか。
それともJavaScriptでやるようなことではないのでしょうか。
JavaScriptでできる場合どのようにすればよいのでしょうか?

せめてサンプルだけでも動かせるようにしたいです。。
他にもいろいろと試してみましたがどうにも動きません・・
よろしくお願い致します。

JavaScript初心者です。

JavaScriptのwindow.openerを使って、
子ウィンドウから親ウィンドウに値を渡す、
ということをしたいのですが、うまくできません。
実装したい環境はIE6です。。

こちらのページのサンプルにあるソースをそのまま貼り付けてみても動きませんでした。
http://shoyu-ramen23.jugem.jp/?eid=203
ただ、サンプルはこちら、と書いてあるページのものは動きます。
(実際記載されているソースとは違うのではないかと思いますが)
 *ちなみにGoogleChromeでも同じ結果でした。ソース自体何か...続きを読む

Aベストアンサー

<html>
<head>
<title>子ウィンドウ</title>
<script>
function setFormInput(val){
  if(!window.opener || window.opener.closed){
    //親ウィンドウが存在しない
    window.close();
  } else{
    //window.openerで親ウィンドウのオブジェクトを操作
    window.opener.document.getElementById('title01').innerHTML = val;
    window.opener.document.form01.text01.value = val;
    window.close();
  }
}

function OC(){
var d=document.getElementsByTagName("input")
var a=[]
for(var i=0;i<d.length;++i){
if(d[i].checked){a.push(d[i].nextSibling.textContent)}
}
setFormInput(a.join())
}
</script>
</head>
<body>
好きな果物を選んで下さい。<br>
<input type="checkbox">いちご<br>
<input type="checkbox">りんご<br>
<input type="checkbox">みかん<br>
<input type="button" value="選択" onClick="OC();window.close();return false;">
</body>
</html>

<html>
<head>
<title>子ウィンドウ</title>
<script>
function setFormInput(val){
  if(!window.opener || window.opener.closed){
    //親ウィンドウが存在しない
    window.close();
  } else{
    //window.openerで親ウィンドウのオブジェクトを操作
    window.opener.document.getElementById('title01').innerHTML = val;
    window.opener.document.form01.text01.value = val;
    window.close();
  }
}

function OC(){
var d=document.getElementsByTagName("inpu...続きを読む


人気Q&Aランキング