質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

9683閲覧

子ウィンドウの値を親ウィンドウで受け取る方法

Praline

総合スコア46

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/11/20 13:12

###前提・実現したいこと
現在製作中のWEBアプリケーションで、以下の機能を実装したいです。

  • 親ウィンドウから、子ウィンドウを開く。
  • 子ウィンドウで各種inputの情報を入力する。
  • 子ウィンドウでsubmitした時に、親ウィンドウで子ウィンドウのinputの値を受け取る。
  • 子ウィンドウを閉じる。

これら一連の動作ですが、jQueryなどで実現可能でしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

どうもこんにちは。
ここから回答

jQueryなどで実現可能でしょうか?

できます。
HTML, CSS, jQueryを使い、このように書くことができます。
親ウィンドウ

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>親ウィンドウ</title> 6</head> 7<body> 8<form name="parent_form"> 9 <label>ここに子ウィンドウから受け取った値が代入されます。 10 <textarea name="parent_textarea" class="parent_textarea"></textarea> 11 </label> 12</form> 13 14<a target="child_window" onClick="open_window()" style="color: deepskyblue"> 15 子ウィンドウを開く 16</a> 17 18<script type="text/javascript" src="jquery.js"></script> 19<script type="text/javascript"> 20 function open_window(url) { 21 window.open("children.html", "child_window", "width=400, height=300, menubar=no, toolbar=no, scrollbars=yes"); 22 } 23</script> 24</body> 25</html>

子ウィンドウは次のようになります。

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>子供ウィンドウ</title> 6</head> 7<body> 8<form name="form1" id="form1"> 9 <input id="input_1" name="input_1" type="text" value=""> 10 <button onclick="message_sender(document.form1.input_1.value)">送信</button> 11</form> 12<script type="text/javascript" src="jquery.js"></script> 13<script type="text/javascript"> 14 var message = ""; 15 function message_sender(message) { 16 window.opener.$(".parent_textarea").val(message); 17 } 18</script> 19</body> 20</html>

走り書きですので、動かないところや、タイプミスなどがあると思いますので、わからないところがありましたらコメントなどをよろしくおねがいします。
以上、少し乱暴ですが、回答を終わります。

投稿2016/11/20 15:13

編集2016/11/20 15:15
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Praline

2016/11/20 15:28

早速の回答ありがとうございます。 調べたときはopenerというメソッドにたどり着けませんでした… 自分の想定していた処理に最も近いので、こちらをBAにさせていただきます。 参考に処理を実装させていただきます!
guest

0

別ウィンドウを開いてsubmitする方法もありますが、ウィンドウ内にモーダルウィンドウを作ってそこで入力するほうが躓きにくいと思います。

【初心者でも分かる!モーダルウィンドウの作り方】
https://syncer.jp/jquery-modal-window

【画面中央に表示するモーダルウィンドウを実装したい | Tips Note by TAM】
http://www.tam-tam.co.jp/tipsnote/html_css/post8031.html

【【jQuery】超簡単に実装できるモーダル・ポップアップ[Remodal]の使い方 - ONZE】
http://on-ze.com/archives/4500

モーダルウィンドウ jquery」などで検索するともっと色々出てくると思います。

投稿2016/11/20 15:02

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Praline

2016/11/20 15:08

後出しの補足となり申し訳ないのですが、子ウィンドウ内で別ページへの遷移などを行う必要がありまして、可能であればモーダルを使わない方向だと嬉しいです… もし無理そうであれば、モーダル内で該当ページに飛ばすように実装したいと思います。
kei344

2016/11/20 15:15

「子ウィンドウ内で別ページへの遷移などを行う必要」の部分の要件が質問文には記載されていませんので、とりあえず追記されてはいかがでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問