質問編集履歴

2

コードの修正

2020/02/20 05:13

投稿

GenkiSugiyama
GenkiSugiyama

スコア86

test CHANGED
File without changes
test CHANGED
@@ -4,6 +4,58 @@
4
4
 
5
5
 
6
6
 
7
+ ```HTML
8
+
9
+ <div class="info addr_info">
10
+
11
+ <h2>お届け先の入力</h2>
12
+
13
+ <ul class="addr_choice radio_list">
14
+
15
+ <li>
16
+
17
+ <label id="optionLbl01">
18
+
19
+ <input type="radio" name="receiver_user_type" id="receiver_user_type_X" value="X" onclick="copydata()">
20
+
21
+ <span class="radioLabel">注文者の住所にお届けする</span>
22
+
23
+ </label>
24
+
25
+ </li>
26
+
27
+ <li>
28
+
29
+ <label id="optionLbl01">
30
+
31
+ <input type="radio" name="receiver_user_type" id="receiver_user_type_E" value="E" onclick="javscript:copydata();showReceiverForm();">
32
+
33
+ <span class="radioLabel">注文者の情報を元にお届け先を編集する</span>
34
+
35
+ </label>
36
+
37
+ </li>
38
+
39
+ <li>
40
+
41
+ <label id="optionLbl01">
42
+
43
+ <input type="radio" name="receiver_user_type" id="receiver_user_type_N" value="N" onclick="addrclick()">
44
+
45
+ <span class="radioLabel">新しいお届け先を入力する</span>
46
+
47
+ </label>
48
+
49
+ </li>
50
+
51
+ </ul>
52
+
53
+ </div>
54
+
55
+ ```
56
+
57
+
58
+
7
59
  ##実現したいこと
8
60
 
9
61
 

1

ソースの追記

2020/02/20 05:13

投稿

GenkiSugiyama
GenkiSugiyama

スコア86

test CHANGED
File without changes
test CHANGED
@@ -4,80 +4,28 @@
4
4
 
5
5
 
6
6
 
7
+ ##実現したいこと
8
+
9
+
10
+
11
+ 下二つの選択肢をチェックすると送付先入力フォームが表示され、編集・新規入力ができるようになっています。
12
+
13
+ 入力した情報がエラーのまま次の画面に進もうとすると、バリデーションでこのページにリダイレクトするようにしたいのですが、その際**ラジオボタンのチェック状態を維持したままリダイレクトさせたいです。**
14
+
15
+ (フォームを表示したままの状態でリダイレクトさせたいいため)
16
+
17
+
18
+
19
+ ##試したこと
20
+
21
+ 本サイトに[同様の質問](https://teratail.com/questions/178133)があったのでこちらのlocalStrageを使ってチェックボタンの値を保持しようとしたのですがうまくいきませんでした。
22
+
23
+
24
+
25
+ 下記はラジオボタンが配置されているhtmlに記述したコードです。
26
+
7
27
  ```HTML
8
28
 
9
- <div class="info addr_info">
10
-
11
- <h2>お届け先の入力</h2>
12
-
13
- <ul class="addr_choice radio_list">
14
-
15
- <li>
16
-
17
- <label id="optionLbl01">
18
-
19
- <input type="radio" name="receiver_user_type" id="receiver_user_type_X" value="X" onclick="copydata()">
20
-
21
- <span class="radioLabel">注文者の住所にお届けする</span>
22
-
23
- </label>
24
-
25
- </li>
26
-
27
- <li>
28
-
29
- <label id="optionLbl01">
30
-
31
- <input type="radio" name="receiver_user_type" id="receiver_user_type_E" value="E" onclick="javscript:copydata();showReceiverForm();">
32
-
33
- <span class="radioLabel">注文者の情報を元にお届け先を編集する</span>
34
-
35
- </label>
36
-
37
- </li>
38
-
39
- <li>
40
-
41
- <label id="optionLbl01">
42
-
43
- <input type="radio" name="receiver_user_type" id="receiver_user_type_N" value="N" onclick="addrclick()">
44
-
45
- <span class="radioLabel">新しいお届け先を入力する</span>
46
-
47
- </label>
48
-
49
- </li>
50
-
51
- </ul>
52
-
53
- </div>
54
-
55
- ```
56
-
57
-
58
-
59
- ##実現したいこと
60
-
61
-
62
-
63
- 下二つの選択肢をチェックすると送付先入力フォームが表示され、編集・新規入力ができるようになっています。
64
-
65
- 入力した情報がエラーのまま次の画面に進もうとすると、バリデーションでこのページにリダイレクトするようにしたいのですが、その際**ラジオボタンのチェック状態を維持したままリダイレクトさせたいです。**
66
-
67
- (フォームを表示したままの状態でリダイレクトさせたいいため)
68
-
69
-
70
-
71
- ##試したこと
72
-
73
- 本サイトに[同様の質問](https://teratail.com/questions/178133)があったのでこちらのlocalStrageを使ってチェックボタンの値を保持しようとしたのですがうまくいきませんでした。
74
-
75
-
76
-
77
- 下記はラジオボタンが配置されているhtmlに記述したコードです。
78
-
79
- ```HTML
80
-
81
29
  <script>
82
30
 
83
31
  window.addEventListener('DOMContentLoaded', function (e) {
@@ -119,3 +67,211 @@
119
67
 
120
68
 
121
69
  よろしくお願いいたします。
70
+
71
+
72
+
73
+ 2019/02/20追記
74
+
75
+ ユーザー関数を記述しているjsファイルの内容を記載します。
76
+
77
+
78
+
79
+ ```JavaScript
80
+
81
+ function copydata() {
82
+
83
+ var copydata_value = "";
84
+
85
+ for(i=0;i<document.form1.receiver_user_type.length;i++){
86
+
87
+ if(document.form1.receiver_user_type[i].checked == true){
88
+
89
+ copydata_value = document.form1.receiver_user_type[i].value;
90
+
91
+ }
92
+
93
+ }
94
+
95
+ if (copydata_value == 'X' || copydata_value == 'E') {
96
+
97
+ document.form1.receiver.value=document.form1.sender.value;
98
+
99
+ document.form1.receiver_kana.value=document.form1.sender_kana.value;
100
+
101
+
102
+
103
+ document.form1.receiver_office_name.value = document.form1.office_name.value;
104
+
105
+ document.form1.receiver_office_name_kana.value = document.form1.office_name_kana.value;
106
+
107
+ document.form1.receiver_office_dept_name.value = document.form1.office_dept_name.value;
108
+
109
+
110
+
111
+ document.form1.emergency2_1.value=document.form1.emergency1_1.value;
112
+
113
+ document.form1.emergency2_2.value=document.form1.emergency1_2.value;
114
+
115
+ document.form1.emergency2_3.value=document.form1.emergency1_3.value;
116
+
117
+
118
+
119
+ document.form1.post1.value=document.form1.sender_post1.value;
120
+
121
+ document.form1.post2.value=document.form1.sender_post2.value;
122
+
123
+ changeReceiverArea(document.form1.sender_area.value);
124
+
125
+ document.form1.address.value=document.form1.sender_addr.value;
126
+
127
+ document.form1.address2.value=document.form1.sender_addr2.value;
128
+
129
+ }else {
130
+
131
+ document.form1.receiver.value="";
132
+
133
+ document.form1.receiver_kana.value="";
134
+
135
+ document.form1.receiver_office_name.value = '';
136
+
137
+ document.form1.receiver_office_name_kana.value = '';
138
+
139
+ document.form1.receiver_office_dept_name.value = '';
140
+
141
+ set_null_emergency(2);
142
+
143
+ // set_null_emergency(3);
144
+
145
+ document.form1.post1.value="";
146
+
147
+ document.form1.post2.value="";
148
+
149
+ changeReceiverArea(0);
150
+
151
+ document.form1.address.value="";
152
+
153
+ document.form1.address2.value="";
154
+
155
+ }
156
+
157
+ }
158
+
159
+ ```
160
+
161
+ ```Javascript
162
+
163
+ function addrclick() {
164
+
165
+ var addrclick_value = "";
166
+
167
+ for(i=0;i<document.form1.receiver_user_type.length;i++){
168
+
169
+ if(document.form1.receiver_user_type[i].checked == true){
170
+
171
+ addrclick_value = document.form1.receiver_user_type[i].value;
172
+
173
+ }
174
+
175
+ }
176
+
177
+
178
+
179
+ if (addrclick_value == "A") {
180
+
181
+ // $('.js_modal').fadeIn();
182
+
183
+ document.form1.receiver.value = "";
184
+
185
+ document.form1.receiver_kana.value = "";
186
+
187
+ set_null_emergency(2);
188
+
189
+ document.form1.address.value = "";
190
+
191
+ document.form1.address2.value = "";
192
+
193
+ changeReceiverArea(0);
194
+
195
+ document.form1.post1.value = "";
196
+
197
+ document.form1.post2.value = "";
198
+
199
+
200
+
201
+ return false;
202
+
203
+ } else {
204
+
205
+ document.form1.receiver.value = "";
206
+
207
+ document.form1.receiver_kana.value = "";
208
+
209
+ set_null_emergency(2);
210
+
211
+ document.form1.address.value = "";
212
+
213
+ document.form1.address2.value = "";
214
+
215
+ changeReceiverArea(0);
216
+
217
+ document.form1.post1.value = "";
218
+
219
+ document.form1.post2.value = "";
220
+
221
+ }
222
+
223
+
224
+
225
+ document.form1.receiver_office_name.value = '';
226
+
227
+ document.form1.receiver_office_name_kana.value = '';
228
+
229
+ document.form1.receiver_office_dept_name.value = '';
230
+
231
+ }
232
+
233
+ ```
234
+
235
+ ```JavaScript
236
+
237
+ function showReceiverForm() {
238
+
239
+ jQuery('.receiver_address').show();
240
+
241
+ }
242
+
243
+ ```
244
+
245
+ ```JavaScript
246
+
247
+ jQuery(function(){
248
+
249
+ jQuery('input[name="receiver_user_type"]').click(function(){
250
+
251
+ if(this.value == 'X'){
252
+
253
+ jQuery('.receiver_address').hide();
254
+
255
+ }else{
256
+
257
+ jQuery('.receiver_address').show();
258
+
259
+ }
260
+
261
+ });
262
+
263
+
264
+
265
+ jQuery('#receiver_user_type_X').trigger('click');
266
+
267
+ jQuery.fn.autoKana('#sender_name', '#sender_kana', {katakana : true});
268
+
269
+ jQuery.fn.autoKana('#receiver_name', '#receiver_kana', {katakana : true});
270
+
271
+ jQuery.fn.autoKana('#sender_office_name', '#sender_office_name_kana', {katakana : true});
272
+
273
+ jQuery.fn.autoKana('#receiver_office_name', '#receiver_office_name_kana', {katakana : true});
274
+
275
+ });
276
+
277
+ ```