teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

再度、実装したい内容の提示

2021/08/24 01:18

投稿

y1_tsuru
y1_tsuru

スコア0

title CHANGED
File without changes
body CHANGED
@@ -114,4 +114,7 @@
114
114
  window.close();
115
115
 
116
116
  -----------------------------------------------
117
- ```
117
+ ```
118
+
119
+ 後続の処理でretを使いたいため、返り値を同じ形式で取得したいです。
120
+ ご教示いただきますよう、お願い致します。

1

コードの再掲載

2021/08/24 01:18

投稿

y1_tsuru
y1_tsuru

スコア0

title CHANGED
File without changes
body CHANGED
@@ -25,4 +25,93 @@
25
25
  ret.名称 = document.getElementById("name" + selectIdx).value;
26
26
 
27
27
  window.returnValue = ret;
28
- window.close();
28
+ window.close();
29
+
30
+ ```javascript
31
+ 親画面より子画面を呼び出し、子画面で選択した値が、親画面に反映される。
32
+
33
+ -----------------------------------------------
34
+ 画面A(親画面)(A.js)
35
+ //---- * 商品検索ボタン押下
36
+ btnShohinCd.click(function (e) {
37
+ //商品検索画面OPEN
38
+ shohinOpenSearchDispCmn(this, "1")
39
+ });
40
+
41
+ //--* 商品検索画面OPEN共通
42
+ function shohinOpenSearchDispCmn(me, mode) {
43
+ // 引数設定
44
+ var ret;
45
+ var cdObj = getObjIDReplace(me, 'btn', 'txt').get(0);
46
+ var hdnObj = getObjIDReplace(me, 'btn', 'hdn').get(0);
47
+ var nmObj = $(me).parents('#trMain').find("[id*=txtShohinNm]").get(0);
48
+
49
+ // 検索画面呼出
50
+ ret = openShohinSerchBase(cdObj, hdnObj, nmObj, mode);
51
+
52
+ //戻り値が「NULL」「エラー」の場合処理終了
53
+ if (ret == null) { return false; }
54
+ if (ret.err_msg != "") { return false; }
55
+
56
+ cdObj.value = ret.コード
57
+
58
+ }
59
+ -----------------------------------------------
60
+ 共通(共通.js)
61
+ function openShohinSerchBase(cdObj, hdnObj, nmObj, mode, searchFlg) {
62
+ //パラメータ設定
63
+ var url = "~"; //子画面URL
64
+ var param = "dialogHeight:~px; dialogWidth: ~px; scroll: 0; status: 0; resizable: 0;";
65
+
66
+ //検索画面OPEN
67
+ var ret = openSerchDispCmn(url, param, cdObj, hdnObj, nmObj);
68
+ if (ret != null) {
69
+ //コードバックアップ
70
+ var cdBk = ret.コード;
71
+ //URL設定
72
+ var url = '~';
73
+ //引数設定
74
+ var param = {
75
+ コード: ret.コード
76
+ 名称: ret.名称
77
+ }
78
+ ret = setDataCmn(url, param, cdObj, hdnObj, nmObj, false)
79
+
80
+ //コード再設定
81
+ cdObj.value = cdBk;
82
+ hdnObj.value = cdBk;
83
+ }
84
+
85
+ //項目選択
86
+ selectCharStr(cdObj);
87
+ return ret;
88
+ }
89
+
90
+ function openSerchDispCmn(url, param, cdObj, hdnObj, nmObj) {
91
+ //検索画面open
92
+ var ret = window.showModalDialog(url, window, param); //画面B(子画面)のURLを引数とし、子画面OPEN
93
+
94
+ //取得値セット
95
+ if (ret != null) {
96
+ cdObj.value = ret.コード
97
+ }
98
+ //変更チェック設定
99
+ if (ret != null && ret.コード != "") {
100
+ onChkSentaku(cdObj);
101
+ }
102
+ return ret;
103
+ }
104
+ -----------------------------------------------
105
+ 画面B(子画面)(B.js)抜粋
106
+ ↓子画面で検索し、表示された一覧のコードを選択した際の処理。
107
+
108
+ var ret = { "コード": "", "名称":""}
109
+
110
+ ret.コード = document.getElementById("code" + selectIdx).value;
111
+ ret.名称 = document.getElementById("name" + selectIdx).value;
112
+
113
+ window.returnValue = ret;
114
+ window.close();
115
+
116
+ -----------------------------------------------
117
+ ```