質問編集履歴

3

誤字修正

2018/10/30 02:55

投稿

parinpurin23
parinpurin23

スコア20

test CHANGED
File without changes
test CHANGED
@@ -22,180 +22,180 @@
22
22
 
23
23
  ボタンクリックで【入力エリア】の追加と削除を1つずつ行う
24
24
 
25
+ (「.data1」「#name1」「#valu1」のセットを連番で増減し、最低で3セットありそれ以下にはならない)
26
+
27
+
28
+
29
+ > 機能B
30
+
31
+ 【入力エリア】を【送信エリア】にコピーする
32
+
33
+ (最後のカンマはなくし、カンマ連続時は「submit」をdisabledにする)
34
+
35
+
36
+
37
+
38
+
39
+ しかし値1つずつについて書いているために、inputボックスが多い場合への対応が困難となり質問させて頂きました。
40
+
41
+
42
+
43
+ ### 該当のソースコード
44
+
45
+ サンプルあります。
46
+
47
+ [https://jsfiddle.net/rkc4st3q/3/](https://jsfiddle.net/rkc4st3q/3/)
48
+
49
+
50
+
51
+ ```html
52
+
53
+ <section class="datalist">
54
+
55
+ <p>【入力エリア】</p>
56
+
57
+ <div class="data1">
58
+
59
+ <input id="name1" class="name" type="text">
60
+
61
+ <input id="valu1" class="valu" type="number">
62
+
63
+ </div>
64
+
65
+ <div class="data2">
66
+
67
+ <input id="name2" class="name" type="text">
68
+
69
+ <input id="valu2" class="valu" type="number">
70
+
71
+ </div>
72
+
73
+ <div class="data3">
74
+
75
+ <input id="name3" class="name" type="text">
76
+
77
+ <input id="valu3" class="valu" type="number">
78
+
79
+ </div>
80
+
81
+ <!-- 同様に「.data4」や「.data5」などが大量にあり、最低で上の3つがある -->
82
+
83
+ <button type="button" id="add">add data</button>
84
+
85
+ <button type="button" id="remove">remove data</button>
86
+
87
+ </section>
88
+
89
+
90
+
91
+ <section class="outputlist">
92
+
93
+ <p>【送信エリア】</p>
94
+
95
+ <input id="result_name"><br>
96
+
97
+ <input id="result_valu"><br>
98
+
99
+ <button type="button">submit</button>
100
+
101
+ </section>
102
+
103
+ ```
104
+
105
+ ```javascript
106
+
107
+ /*
108
+
109
+ 機能A
110
+
111
+ ボタンクリックで【入力エリア】の追加と削除を1つずつ行う
112
+
25
113
  (data1,name1,valu1のセットを連番で増減し、最低で3セットありそれ以下にはならない)
26
114
 
27
-
115
+ */
116
+
117
+
118
+
28
-
119
+ $('#add').click(function(){
120
+
121
+ if( ($('.data2').css('display')=='none') && ($('.data3').css('display')=='none') ){
122
+
123
+ $('.data2').css('display','flex');
124
+
125
+ }
126
+
127
+ else if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='none') ){
128
+
129
+ $('.data3').css('display','flex');
130
+
131
+ }
132
+
133
+ });
134
+
135
+
136
+
137
+ $('#remove').click(function(){
138
+
139
+ if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='flex') ){
140
+
141
+ $('.data3').css('display','none');
142
+
143
+ }
144
+
145
+ else if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='none') ){
146
+
147
+ $('.data2').css('display','none');
148
+
149
+ }
150
+
151
+ });
152
+
153
+
154
+
155
+
156
+
157
+ /*
158
+
29
- > 機能B
159
+ 機能B
30
160
 
31
161
  【入力エリア】を【送信エリア】にコピーする
32
162
 
33
163
  (最後のカンマはなくし、カンマ連続時は「submit」をdisabledにする)
34
164
 
35
-
36
-
37
-
38
-
39
- しかし値1つずつについて書いているために、inputボックスが多い場合への対応が困難となり質問させて頂きました。
40
-
41
-
42
-
43
- ### 該当のソースコード
44
-
45
- サンプルあります。
46
-
47
- [https://jsfiddle.net/rkc4st3q/2/](https://jsfiddle.net/rkc4st3q/2/)
48
-
49
-
50
-
51
- ```html
52
-
53
- <section class="datalist">
54
-
55
- <p>【入力エリア】</p>
56
-
57
- <div class="data1">
58
-
59
- <input id="name1" class="name" type="text">
60
-
61
- <input id="valu1" class="valu" type="number">
62
-
63
- </div>
165
+ */
64
-
65
- <div class="data2">
166
+
66
-
67
- <input id="name2" class="name" type="text">
68
-
69
- <input id="valu2" class="valu" type="number">
70
-
71
- </div>
72
-
73
- <div class="data3">
74
-
75
- <input id="name3" class="name" type="text">
76
-
77
- <input id="valu3" class="valu" type="number">
78
-
79
- </div>
80
-
81
- <!-- 同様に「.data4」や「.data5」などが大量にあり、最低で上の3つがある -->
82
-
83
- <button type="button" id="add">add data</button>
84
-
85
- <button type="button" id="remove">remove data</button>
86
-
87
- </section>
88
-
89
-
90
-
91
- <section class="outputlist">
92
-
93
- <p>【送信エリア】</p>
94
-
95
- <input id="result_name"><br>
96
-
97
- <input id="result_valu"><br>
98
-
99
- <button type="button">submit</button>
167
+ $(".name").on('keyup',function(){
168
+
100
-
169
+ var input_name1 = $('#name1').val();
170
+
171
+ var input_name2 = $('#name2').val();
172
+
173
+ var input_name3 = $('#name3').val();
174
+
175
+ var output_names = input_name1+','+input_name2+','+input_name3;
176
+
101
- </section>
177
+ $('#result_name').val(output_names);
178
+
179
+ });
180
+
181
+
182
+
183
+ $(".valu").on('keyup',function(){
184
+
185
+ var input_valu1 = $('#valu1').val();
186
+
187
+ var input_valu2 = $('#valu2').val();
188
+
189
+ var input_valu3 = $('#valu3').val();
190
+
191
+ var output_valus = input_valu1+','+input_valu2+','+input_valu3;
192
+
193
+ $('#result_valu').val(output_valus);
194
+
195
+ });
102
196
 
103
197
  ```
104
198
 
105
- ```javascript
106
-
107
- /*
108
-
109
- 機能A
110
-
111
- ボタンクリックで【入力エリア】の追加と削除を1つずつ行う
112
-
113
- (data1,name1,valu1のセットを連番で増減し、最低で3セットありそれ以下にはならない)
114
-
115
- */
116
-
117
-
118
-
119
- $('#add').click(function(){
120
-
121
- if( ($('.data2').css('display')=='none') && ($('.data3').css('display')=='none') ){
122
-
123
- $('.data2').css('display','flex');
124
-
125
- }
126
-
127
- else if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='none') ){
128
-
129
- $('.data3').css('display','flex');
130
-
131
- }
132
-
133
- });
134
-
135
-
136
-
137
- $('#remove').click(function(){
138
-
139
- if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='flex') ){
140
-
141
- $('.data3').css('display','none');
142
-
143
- }
144
-
145
- else if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='none') ){
146
-
147
- $('.data2').css('display','none');
148
-
149
- }
150
-
151
- });
152
-
153
-
154
-
155
-
156
-
157
- /*
158
-
159
- 機能B
160
-
161
- 【入力エリア】を【送信エリア】にコピーする
162
-
163
- (最後のカンマはなくし、カンマ連続時は「submit」をdisabledにする)
164
-
165
- */
166
-
167
- $(".name").on('keyup',function(){
168
-
169
- var input_name1 = $('#name1').val();
170
-
171
- var input_name2 = $('#name2').val();
172
-
173
- var input_name3 = $('#name3').val();
174
-
175
- var output_names = input_name1+','+input_name2+','+input_name3;
176
-
177
- $('#result_name').val(output_names);
178
-
179
- });
180
-
181
-
182
-
183
- $(".valu").on('keyup',function(){
184
-
185
- var input_valu1 = $('#valu1').val();
186
-
187
- var input_valu2 = $('#valu2').val();
188
-
189
- var input_valu3 = $('#valu3').val();
190
-
191
- var output_valus = input_valu1+','+input_valu2+','+input_valu3;
192
-
193
- $('#result_valu').val(output_valus);
194
-
195
- });
196
-
197
- ```
198
-
199
199
  質問をまとめます。
200
200
 
201
201
 

2

補足を受けて修正し、送信ボタン追加させて頂きました

2018/10/30 02:55

投稿

parinpurin23
parinpurin23

スコア20

test CHANGED
File without changes
test CHANGED
@@ -12,19 +12,31 @@
12
12
 
13
13
 
14
14
 
15
- ### 発生している問題・エラーメッセージ
15
+ ### 発生している問題
16
-
17
-
18
-
16
+
17
+
18
+
19
- 下記の該当のソースコードでは
19
+ 下記の該当のソースコードのように目的とする機能AとBがあります。
20
+
20
-
21
+ > 機能A
22
+
23
+ ボタンクリックで【入力エリア】の追加と削除を1つずつ行う
24
+
25
+ (data1,name1,valu1のセットを連番で増減し、最低で3セットありそれ以下にはならない)
26
+
27
+
28
+
29
+ > 機能B
30
+
21
- 【入力エリア】を【送信エリア】にコピー という機能と、
31
+ 【入力エリア】を【送信エリア】にコピーする
22
-
32
+
23
- ・ボタクリックで【入力エリア】の追加と削除 という機能がありま
33
+ (最後のカマはなくし、カンマ連続時は「submit」をdisabledにる)
24
-
25
-
26
-
34
+
35
+
36
+
37
+
38
+
27
- しかし値1つずつについて書いているために、inputボックスが多い場合への対応が困難です
39
+ しかし値1つずつについて書いているために、inputボックスが多い場合への対応が困難となり質問させて頂きました
28
40
 
29
41
 
30
42
 
@@ -32,7 +44,7 @@
32
44
 
33
45
  サンプルあります。
34
46
 
35
- [https://jsfiddle.net/rkc4st3q/](https://jsfiddle.net/rkc4st3q/)
47
+ [https://jsfiddle.net/rkc4st3q/2/](https://jsfiddle.net/rkc4st3q/2/)
36
48
 
37
49
 
38
50
 
@@ -44,29 +56,29 @@
44
56
 
45
57
  <div class="data1">
46
58
 
47
- <input id="name1" class="name" type="textarea" placeholder="りんご">
59
+ <input id="name1" class="name" type="text">
48
-
60
+
49
- <input id="valu1" class="valu" type="number" placeholder="3">
61
+ <input id="valu1" class="valu" type="number">
50
62
 
51
63
  </div>
52
64
 
53
65
  <div class="data2">
54
66
 
55
- <input id="name2" class="name" type="textarea" placeholder="なす">
67
+ <input id="name2" class="name" type="text">
56
-
68
+
57
- <input id="valu2" class="valu" type="number" placeholder="2">
69
+ <input id="valu2" class="valu" type="number">
58
70
 
59
71
  </div>
60
72
 
61
73
  <div class="data3">
62
74
 
63
- <input id="name3" class="name" type="textarea">
75
+ <input id="name3" class="name" type="text">
64
76
 
65
77
  <input id="valu3" class="valu" type="number">
66
78
 
67
79
  </div>
68
80
 
69
- <!-- 同様にdata4やdata5などが大量にある -->
81
+ <!-- 同様に「.data4「.data5などが大量にあり、最低で上の3つがある -->
70
82
 
71
83
  <button type="button" id="add">add data</button>
72
84
 
@@ -80,9 +92,11 @@
80
92
 
81
93
  <p>【送信エリア】</p>
82
94
 
83
- <input id="result_name" placeholder="りんご,なす">
95
+ <input id="result_name"><br>
84
-
96
+
85
- <input id="result_valu" placeholder="3,2">
97
+ <input id="result_valu"><br>
98
+
99
+ <button type="button">submit</button>
86
100
 
87
101
  </section>
88
102
 
@@ -92,9 +106,11 @@
92
106
 
93
107
  /*
94
108
 
109
+ 機能A
110
+
95
- これは「ボタンクリックで【入力エリア】の追加と削除をする」とい機能です。
111
+ ボタンクリックで【入力エリア】の追加と削除を1つずつ行
96
-
112
+
97
- 質問➀:実際は大量のinputがあるのでこのままでは条件が大量にってしまいます。シンプル書き方を知りたです。
113
+ (data1,name1,valu1セットを連番増減し、最低3セットありそれ以下にはなない)
98
114
 
99
115
  */
100
116
 
@@ -140,14 +156,14 @@
140
156
 
141
157
  /*
142
158
 
159
+ 機能B
160
+
143
- これは「【入力エリア】を【送信エリア】にコピーする」という機能です。
161
+ 【入力エリア】を【送信エリア】にコピーする
144
-
162
+
145
- 質問➁:実際は大量inputがあるのでこのままでvarでの定義が大量にってまいます。シプルな書き方知りたいで
163
+ (最後カンマはな、カマ連続時は「submit」disabledに
146
164
 
147
165
  */
148
166
 
149
-
150
-
151
167
  $(".name").on('keyup',function(){
152
168
 
153
169
  var input_name1 = $('#name1').val();
@@ -158,8 +174,6 @@
158
174
 
159
175
  var output_names = input_name1+','+input_name2+','+input_name3;
160
176
 
161
- // 質問➂:これではカンマが多くなってしまいます。「値2つにつきカンマを1つ」にしたいです。
162
-
163
177
  $('#result_name').val(output_names);
164
178
 
165
179
  });
@@ -176,36 +190,32 @@
176
190
 
177
191
  var output_valus = input_valu1+','+input_valu2+','+input_valu3;
178
192
 
179
- // 質問➂:これではカンマが多くなってしまいます。「値2つにつきカンマを1つ」にしたいです。
180
-
181
193
  $('#result_valu').val(output_valus);
182
194
 
183
195
  });
184
196
 
185
197
  ```
186
198
 
187
- 質問は、コメントアウトしてある①②③の3つでして、
199
+ 質問をまとめます。
188
-
189
-
190
-
200
+
201
+
202
+
191
- 要はinputが大量にあるためシンプルな書き方を知りたいということと、
203
+ 質問:機能Aについて、実際大量のinputがあるので、このままではif条件が大量になってしまいます。シンプルな書き方を知りたいです。
204
+
205
+
206
+
192
-
207
+ 質問➁:機能Bについて、実際は大量のinputがあるので、このままではvarでの定義が大量になってしまいます。シンプルな書き方を知りたいです。
193
-
194
-
208
+
209
+
210
+
195
- あとは送信エリアコピーする際に「値2つにつきカンマを1つ」にしたいということです。
211
+ 質問:機能Bついて、「値2つにつきカンマを1つ」にして、そしてカンマが連続する場合は「submit」をdisabledにしたいです。
212
+
213
+ (例えば、[りんご,,なす,,]と[3,,2,,]などを、[りんご,,なす]と[3,,2]のように最後にカンマが一切入らないようにして、さらに[りんご,きゅうり,なす]と[3,4,2]のように修正されるまで、「submit」をdisabledにしたいです。)
214
+
215
+
196
216
 
197
217
  ### 試したこと
198
218
 
199
219
 
200
220
 
201
221
  上のソースコードのように、1つずつ書いていくところまでしか試せませんでした。
202
-
203
-
204
-
205
-
206
-
207
-
208
-
209
- ### 補足情報(FW/ツールのバージョンなど)
210
-
211
- 特にありません。

1

リンク変更など

2018/10/30 02:54

投稿

parinpurin23
parinpurin23

スコア20

test CHANGED
File without changes
test CHANGED
@@ -18,9 +18,9 @@
18
18
 
19
19
  下記の該当のソースコードでは、
20
20
 
21
- ・【入力エリア】を【送信エリア】にコピーという機能と、
21
+ ・【入力エリア】を【送信エリア】にコピー という機能と、
22
-
22
+
23
- ・ボタンクリックで【入力エリア】の追加と削除という機能があります。
23
+ ・ボタンクリックで【入力エリア】の追加と削除 という機能があります。
24
24
 
25
25
 
26
26
 
@@ -32,7 +32,7 @@
32
32
 
33
33
  サンプルあります。
34
34
 
35
- [https://jsfiddle.net/zjhktrx2/](https://jsfiddle.net/zjhktrx2/)
35
+ [https://jsfiddle.net/rkc4st3q/](https://jsfiddle.net/rkc4st3q/)
36
36
 
37
37
 
38
38
 
@@ -66,7 +66,7 @@
66
66
 
67
67
  </div>
68
68
 
69
- <!-- 同様に多くのdataがある -->
69
+ <!-- 同様にdata4やdata5など大量にある -->
70
70
 
71
71
  <button type="button" id="add">add data</button>
72
72
 
@@ -92,14 +92,62 @@
92
92
 
93
93
  /*
94
94
 
95
- 【入力エリア】を【送信エリア】にコピー
95
+ これは「ボタンクリックで【入力エリア】の追加と削除する」という機能です。
96
-
96
+
97
- 実際多くがあるのでこのような書き方ではない方を知りたいです)
97
+ 質問➀:実際は大量inputがあるのでこのままでは条件が大量にってしまます。シンプルな書き方を知りたいです
98
98
 
99
99
  */
100
100
 
101
101
 
102
102
 
103
+ $('#add').click(function(){
104
+
105
+ if( ($('.data2').css('display')=='none') && ($('.data3').css('display')=='none') ){
106
+
107
+ $('.data2').css('display','flex');
108
+
109
+ }
110
+
111
+ else if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='none') ){
112
+
113
+ $('.data3').css('display','flex');
114
+
115
+ }
116
+
117
+ });
118
+
119
+
120
+
121
+ $('#remove').click(function(){
122
+
123
+ if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='flex') ){
124
+
125
+ $('.data3').css('display','none');
126
+
127
+ }
128
+
129
+ else if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='none') ){
130
+
131
+ $('.data2').css('display','none');
132
+
133
+ }
134
+
135
+ });
136
+
137
+
138
+
139
+
140
+
141
+ /*
142
+
143
+ これは「【入力エリア】を【送信エリア】にコピーする」という機能です。
144
+
145
+ 質問➁:実際は大量のinputがあるのでこのままではvarでの定義が大量になってしまいます。シンプルな書き方を知りたいです。)
146
+
147
+ */
148
+
149
+
150
+
103
151
  $(".name").on('keyup',function(){
104
152
 
105
153
  var input_name1 = $('#name1').val();
@@ -110,6 +158,8 @@
110
158
 
111
159
  var output_names = input_name1+','+input_name2+','+input_name3;
112
160
 
161
+ // 質問➂:これではカンマが多くなってしまいます。「値2つにつきカンマを1つ」にしたいです。
162
+
113
163
  $('#result_name').val(output_names);
114
164
 
115
165
  });
@@ -126,65 +176,23 @@
126
176
 
127
177
  var output_valus = input_valu1+','+input_valu2+','+input_valu3;
128
178
 
179
+ // 質問➂:これではカンマが多くなってしまいます。「値2つにつきカンマを1つ」にしたいです。
180
+
129
181
  $('#result_valu').val(output_valus);
130
182
 
131
183
  });
132
184
 
133
-
134
-
135
-
136
-
137
- /*
138
-
139
- ボタンクリックで【入力エリア】の追加と削除
140
-
141
- (実際には多くの値があるので、このような書き方ではない方法を知りたいです)
142
-
143
- */
144
-
145
-
146
-
147
- $('#add').click(function(){
148
-
149
- if( ($('.data2').css('display')=='none') && ($('.data3').css('display')=='none') ){
150
-
151
- $('.data2').css('display','flex');
152
-
153
- }
154
-
155
- else if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='none') ){
156
-
157
- $('.data3').css('display','flex');
158
-
159
- }
160
-
161
- });
162
-
163
-
164
-
165
- $('#remove').click(function(){
166
-
167
- if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='flex') ){
168
-
169
- $('.data3').css('display','none');
170
-
171
- }
172
-
173
- else if( ($('.data2').css('display')=='flex') && ($('.data3').css('display')=='none') ){
174
-
175
- $('.data2').css('display','none');
176
-
177
- }
178
-
179
- });
180
-
181
-
182
-
183
-
184
-
185
185
  ```
186
186
 
187
+ 質問は、コメントアウトしてある①②③の3つでして、
188
+
189
+
190
+
191
+ ➀➁は要はinputが大量にあるためシンプルな書き方を知りたいということと、
192
+
193
+
194
+
187
- 質問は、これを1つずつでなくまとめてやる方法と、あとは送信エリアにコピーする際値2つにつきカンマを1つにしたいです。
195
+ あとは送信エリアにコピーする際に「値2つにつきカンマを1つにしたいということです。
188
196
 
189
197
  ### 試したこと
190
198