質問編集履歴

2

Controllerについて、期待する処理結果、実際の処理結果の追記。

2021/06/19 17:06

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -134,7 +134,7 @@
134
134
 
135
135
  if (checked == true) {
136
136
 
137
- alert("削除しました");
137
+ alert("取り消しました");
138
138
 
139
139
  return true;
140
140
 
@@ -156,12 +156,20 @@
156
156
 
157
157
 
158
158
 
159
- ### テーブルの中身
159
+ ### Controllerとテーブルの中身
160
160
 
161
161
  fluitという配列に、以下のように果物の情報が3つずつ入っていたとします。
162
162
 
163
163
  (html内にて、発送状況が1なら取り消し済み、0なら発送中と表示)
164
164
 
165
+
166
+
167
+ Controllerでは選択された行の発送状況が0だった場合は1にする処理を書いています。
168
+
169
+ 一方で発送状況が1だった場合は何も処理を行わないようにしています。
170
+
171
+
172
+
165
173
  |ラジオボタン|果物の名前|値段|発送状況|
166
174
 
167
175
  |:--|:--:|--:|
@@ -174,6 +182,50 @@
174
182
 
175
183
 
176
184
 
185
+ ### 期待する処理結果
186
+
187
+ ・ラジオボタンを何も選択しなかった場合
188
+
189
+ →初期は非表示にしている「ラジオボタンを選択してください。」というメッセージを表示。処理はされない。
190
+
191
+
192
+
193
+ ・ももの行のラジオボタンを選択後に発送取り消しボタンを押下した場合
194
+
195
+ →初期は非表示にしている「【発送中】を選択してください。」というメッセージを表示。処理はされない。
196
+
197
+
198
+
199
+ ・リンゴの行のラジオボタンを選択後に発送取り消しボタンを押下した場合
200
+
201
+ →「発送を取り消しますか」というダイアログの後、その選択肢によって「取り消しました。」「キャンセルしました。」というダイアログを表示し、Controllerで処理を行う。処理後は「取り消し済み」という表記に変更。
202
+
203
+
204
+
205
+ ### 実際の処理結果
206
+
207
+ ・ラジオボタンを何も選択しなかった場合
208
+
209
+ →初期は非表示にしている「ラジオボタンを選択してください。」というメッセージを表示。
210
+
211
+
212
+
213
+ ・ももの行のラジオボタンを選択後に発送取り消しボタンを押下した場合
214
+
215
+ →メッセージもダイアログも表示されず何も変化しない。
216
+
217
+
218
+
219
+ ・リンゴの行のラジオボタンを選択後に発送取り消しボタンを押下した場合
220
+
221
+ →ダイアログがないままControllerに処理が送られ、「発送状況」の値が0から1に変更される。そのためビューでも「取り消し済み」という表記に変更。
222
+
223
+
224
+
225
+ おそらく、ラジオボタンの入力チェックはできていますが、選択された行の発送状況を区別できていないため、発送中でも取り消し済みでも処理が送られているようです。
226
+
227
+
228
+
177
229
 
178
230
 
179
231
  ### 以上を踏まえての質問内容
@@ -196,6 +248,10 @@
196
248
 
197
249
 
198
250
 
251
+ 今回、Controllerでメッセージ表記する方法でもよいのですが、ダイアログを使用する処理もあるため、できればJavascriptにて値を取得してメッセージの表記をしたいです。
252
+
253
+
254
+
199
255
  再度の掲載、また編集になり、ご迷惑をおかけし申し訳ございません。
200
256
 
201
257
  また拙い文章と理解度での質問になってしまっていること、重ねてお詫び申し上げます。

1

実現したいこと、HTML、Javascript、テーブル、質問内容。大きく変わっていない部分もありますが、それらの編集をさせていただきました。ご迷惑をおかけし申し訳ございません。

2021/06/19 17:06

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,14 @@
8
8
 
9
9
 
10
10
 
11
+ <追記>
12
+
13
+ 下記コードにて具体例を説明させていただきます。
14
+
15
+ htmlで作成したテーブルの3番目、もものラジオボタンを選択後に「発送取り消しボタン」を押下した場合、ももはすでに「取り消し済み」になっているため、初期段階では非表示にしている「【発送中】を選択してください。」というエラーメッセージを表示したいです。
16
+
17
+ そのため、Javascriptにてラジオボタンで選択された行の「発送状況」の値を取得し、該当のif文内に「発送状況が「取り消し済み」だったら」という条件を記載したいです。
18
+
11
19
 
12
20
 
13
21
  ### 該当のソースコード
@@ -18,37 +26,49 @@
18
26
 
19
27
  <table>
20
28
 
21
- <tr>
29
+ <tr>
22
-
30
+
23
- <th>ラジオボタン</th>
31
+ <th>ラジオボタン</th>
24
-
32
+
25
- <th>果物の名前</th>
33
+ <th>果物の名前</th>
26
-
34
+
27
- <th>値段</th>
35
+ <th>値段</th>
28
-
36
+
29
- <th>地域</th>
37
+ <th>発送状況</th>
30
-
38
+
31
- </tr>
39
+ </tr>
32
-
33
-
34
-
40
+
41
+
42
+
35
- <tr th:each="fluit:${session.fluits}">
43
+ <tr th:each="fluit:${session.fluits}">
36
-
44
+
37
- <td><input type="radio" name="fluitRadio" th:value="${fluit.fluitId}" /></td>
45
+ <td><input type="radio" name="fluitRadio" th:value="${fluit.fluitId}" /></td>
38
-
46
+
39
- <td th:text="${fluit.name)}"></td>
47
+ <td th:text="${fluit.name)}"></td>
40
-
48
+
41
- <td th:text="${fluit.fee}"></td>
49
+ <td th:text="${fluit.fee}"></td>
42
-
50
+
43
- <td th:text="${fluit.area}"></td>
51
+ <td th:text="${fluit.stock} == 1?[取り消し済み]:[発送中]"></td>
44
-
52
+
45
- </tr>
53
+ </tr>
46
-
54
+
47
- </table>
55
+ </table>
56
+
48
-
57
+ <!-- ▼▼▼▼▼▼▼発送削除ボタン▼▼▼▼▼▼▼ -->
58
+
59
+              <!-- ラジオボタン未選択の場合はエラーメッセージ表示 -->
60
+
61
+ <div id="selectradio">ラジオボタンを選択してください。</div>
62
+
63
+ <!-- 取り消し済みを選択した場合はエラーメッセージ表示 -->
64
+
65
+ <div id="gonow">【発送中】を選択してください。</div>
66
+
67
+
68
+
49
- <input onclick="return MoveCheck()" type="submit" name="submitfluit"
69
+ <input onclick="return MoveCheck()" type="submit" name="reset"
50
-
70
+
51
- id="checkButton" value="発送削除" />
71
+ id="checkButton" value="発送取り消し" />
52
72
 
53
73
  ```
54
74
 
@@ -56,6 +76,12 @@
56
76
 
57
77
  function MoveCheck() {
58
78
 
79
+ //エラーメッセージを初期段階で未表示にする
80
+
81
+ document.getElementById("selectradio").style.display ="none";
82
+
83
+ document.getElementById("gonow").style.display ="none";
84
+
59
85
  var flag = 0;
60
86
 
61
87
  //入力チェック
@@ -90,15 +116,17 @@
90
116
 
91
117
  if (flag) {
92
118
 
119
+ //ラジオボタン未選択の場合の処理
120
+
93
121
  selectradio.style.display =""; //「ラジオボタンを選択してください」を表示
94
122
 
95
123
  return false; // 送信を中止
96
124
 
97
125
  } else {
98
126
 
99
- if(”【ここに選択されたラジオボタンと同じ行にあるfluit.areaが「北海道」だった場合を書きたいです】”){
127
+ if(”【ここに選択されたラジオボタンと同じ行にあるfluit.areaが「取り消し済み」だった場合を書きたいです】”){
100
-
128
+
101
- fluitnow.style.display ="";//「【北海道以外】のものを選択してください」を表示
129
+ gonow.style.display ="";//「【発送済み】のものを選択してください」を表示
102
130
 
103
131
  }else{
104
132
 
@@ -132,30 +160,44 @@
132
160
 
133
161
  fluitという配列に、以下のように果物の情報が3つずつ入っていたとします。
134
162
 
163
+ (html内にて、発送状況が1なら取り消し済み、0なら発送中と表示)
164
+
135
- |ラジオボタン|果物の名前|値段|地域|
165
+ |ラジオボタン|果物の名前|値段|発送状況|
136
166
 
137
167
  |:--|:--:|--:|
138
168
 
139
- |ラジオボタン|りんご|100|関東|
169
+ |ラジオボタン|りんご|100|0|
140
-
170
+
141
- |ラジオボタン|ぶどう|120|関西|
171
+ |ラジオボタン|ぶどう|120|0|
142
-
172
+
143
- |ラジオボタン|もも|200|北海道|
173
+ |ラジオボタン|もも|200|1|
174
+
175
+
144
176
 
145
177
 
146
178
 
147
179
  ### 以上を踏まえての質問内容
148
180
 
149
- 3つ目のラジオボタン(もも)を選択しボタンを押下したときに、「北海道」というJavaScriptで取得するにはどのようにしたらよいですか?
181
+ 3つ目のラジオボタン(もも)を選択しボタンを押下したときに、選択された行の発送状況が発送中であるか「取り消し済み」であるかを取得し、if文にて「「取り消し済み」だった場合」という条件書くにはどのようにしたらよいですか?
182
+
150
-
183
+ また、使用すif文に記載する条件は
184
+
151
- また、先述致しましたが、最終的には条件によってエラーメッセージを表示したいです。値を取得後は値が条件に合うのかif文を書きいと思っています。(Javascriptにて該当箇所を記述
185
+ if( 変数(選択され行の発送状況) == 1
186
+
152
-
187
+
188
+
189
+ となるのか、
190
+
153
- 場合、 値=="北海道" で等価演算子はあっていますか?
191
+ if( 変数(選択された行発送状況) == "取り消し済み"){
192
+
154
-
193
+
194
+
195
+ とすればよいのかも教えていただきたいです。
196
+
197
+
198
+
155
- (改めて最終的たいこと→ラジオボタン選択ボタンを押下たときに、選択されたラジオボタンと同じ行にあるfluit.areaが「北海道」だった場合はエラーメッセージを表示したです
199
+ 再度の掲載また編集、ご迷惑おかけ訳ござません
156
-
157
-
158
-
200
+
159
- 拙い文章と理解度での質問になってしまい申し訳ございせん
201
+ また拙い文章と理解度での質問になってしまってること、重ねてお詫び申し上げ
160
202
 
161
203
  お力添えをお願いします。