回答編集履歴

1

固定的なname指定部分を修正 あと追記

2018/10/29 23:07

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -82,108 +82,118 @@
82
82
 
83
83
  $(function(){
84
84
 
85
+ //入力セット追加
86
+
87
+ $("#add").on("click",function(){
88
+
89
+ var data_count = $(".data").length;
90
+
91
+
92
+
93
+ //蛇足:デフォルト入力セットがないとき
94
+
95
+ if(data_count <= 0){
96
+
97
+ alert("コピー元データが存在しません");
98
+
99
+ return false;
100
+
101
+ }
102
+
103
+ var next_inputset = $($(".data")[data_count-1]).clone();//最終の要素をコピー
104
+
105
+ var next_id = data_count+1;//個数+1をIDとする
106
+
107
+ next_inputset.children("input.name").attr("id","name"+next_id);
108
+
109
+ next_inputset.children("input.name").val("");
110
+
111
+ next_inputset.children("input.valu").attr("id","valu"+next_id);
112
+
113
+ next_inputset.children("input.valu").val("");
114
+
115
+ $(".data")[data_count-1].after(next_inputset[0]);
116
+
117
+ //蛇足:ボタンの状態の切り替え
118
+
119
+ //削除ボタンを活性化
120
+
121
+ if(next_id == 2){
122
+
123
+ $("#remove").prop("disabled",false);
124
+
125
+ }
126
+
127
+ });
128
+
129
+ //入力セット削除
130
+
131
+ $("#remove").on("click",function(){
132
+
133
+ var data_count = $(".data").length;
134
+
135
+ //蛇足:1つもないとき
136
+
137
+ if(data_count <= 0){
138
+
139
+ alert("削除元データが存在しません");
140
+
141
+ return false;
142
+
143
+ }
144
+
145
+ //蛇足:1つしかないとき
146
+
147
+ if(data_count === 1){
148
+
149
+ alert("デフォルト入力セットは削除できません");
150
+
151
+ return false;
152
+
153
+ }
154
+
155
+ var last_inputset = $($(".data")[data_count-1]); //最終要素を取得
156
+
157
+ last_inputset.remove();
158
+
159
+ //蛇足:ボタンの状態の切り替え
160
+
161
+ if($(".data").length <= 1){
162
+
163
+ $("#remove").prop("disabled",true);
164
+
165
+ }
166
+
167
+
168
+
169
+ //蛇足:現在の状態で送信エリアの値を精査
170
+
171
+ data_send("name");
172
+
173
+ data_send("valu");
174
+
175
+ });
176
+
85
177
 
86
178
 
87
- //入力セット追加
179
+ //入力値を結合
88
-
89
- $("#add").on("click",function(){
180
+
90
-
91
- var data_count = $(".data").length;
92
-
93
- if(data_count <= 0){
94
-
95
- alert("コピー元データが存在しません");
96
-
97
- return false;
98
-
99
- }
100
-
101
- var next_inputset = $($(".data")[data_count-1]).clone();//最終の要素をコピー
102
-
103
- var next_id = data_count+1;//個数+1をIDとする
104
-
105
- next_inputset.children("input.name").attr("id","name"+next_id);
106
-
107
- next_inputset.children("input.name").val("");
108
-
109
- next_inputset.children("input.valu").attr("id","valu"+next_id);
110
-
111
- next_inputset.children("input.valu").val("");
112
-
113
- $(".data")[data_count-1].after(next_inputset[0]);
114
-
115
- //削除ボタンを活性化
181
+ //動的生成要素に対応
116
-
117
- if(next_id == 2){
182
+
118
-
119
- $("#remove").prop("disabled",false);
120
-
121
- }
122
-
123
- });
124
-
125
- //入力セット削除
126
-
127
- $("#remove").on("click",function(){
183
+ $(document).on("keyup",".name",function(){
128
-
129
- var data_count = $(".data").length;
130
-
131
- if(data_count <= 0){
132
-
133
- alert("削除元データが存在しません");
134
-
135
- return false;
136
-
137
- }
138
-
139
- if(data_count === 1){
140
-
141
- alert("デフォルト入力セットは削除できません");
142
-
143
- return false;
144
-
145
- }
146
-
147
- var last_inputset = $($(".data")[data_count-1]); //最終要素を取得
148
-
149
- if(last_inputset.children("input.name").attr("id") == "name2"){
150
-
151
- $("#remove").prop("disabled",true);
152
-
153
- }
154
-
155
- last_inputset.remove();
156
-
157
-
158
-
159
- //蛇足:現在の状態で送信エリアを精査
160
184
 
161
185
  data_send("name");
162
186
 
187
+ });
188
+
189
+ $(document).on("keyup",".valu",function(){
190
+
163
191
  data_send("valu");
164
192
 
165
193
  });
166
194
 
167
195
 
168
196
 
169
- //入力値を結合
170
-
171
- //動的生成要素に対応
172
-
173
- $(document).on("keyup",".name",function(){
174
-
175
- data_send("name");
176
-
177
- });
178
-
179
- $(document).on("keyup",".valu",function(){
180
-
181
- data_send("valu");
182
-
183
- });
184
-
185
-
186
-
187
197
  //送信共通メソッド
188
198
 
189
199
  function data_send(vname){
@@ -194,6 +204,8 @@
194
204
 
195
205
  data_array.push($($("."+vname)[i]).val());
196
206
 
207
+ //空の場合は考慮していない
208
+
197
209
  }
198
210
 
199
211
  $("#result_"+vname).val(data_array.join(","));
@@ -203,3 +215,13 @@
203
215
  });
204
216
 
205
217
  ```
218
+
219
+
220
+
221
+ # 追記
222
+
223
+
224
+
225
+ 蛇足を沢山入れています。
226
+
227
+ 個人的に考慮しといたほうがいいかなというところです。