回答編集履歴

2

追記

2018/07/16 14:05

投稿

退会済みユーザー
test CHANGED
@@ -151,3 +151,9 @@
151
151
  </html>
152
152
 
153
153
  ```
154
+
155
+
156
+
157
+ 参考サンプル
158
+
159
+ [見積もり作成フォームのテンプレート](https://qiita.com/ShibuyaKosuke/items/02ba7d084230747b7542)

1

追記

2018/07/16 14:05

投稿

退会済みユーザー
test CHANGED
@@ -73,3 +73,81 @@
73
73
  0. name属性の数字は空にしておけば数字を制御する必要がない。暗黙的にインデックスが割り当てられる。
74
74
 
75
75
  0. clone() する前に input に値が入力されているとき、valueも一緒にコピーされるので、空にする。
76
+
77
+
78
+
79
+ ---
80
+
81
+
82
+
83
+ ```html
84
+
85
+ <!DOCTYPE HTML>
86
+
87
+ <html lang="ja">
88
+
89
+ <head>
90
+
91
+ <meta charset="UTF-8">
92
+
93
+ <title></title>
94
+
95
+ </head>
96
+
97
+ <body>
98
+
99
+ <div class="foo">
100
+
101
+ <div class="form-inline row mt10 bar" >
102
+
103
+ <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][0][detail1]" value="" ></div>
104
+
105
+ <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][0][detail2]" value="" ></div>
106
+
107
+ <button class="btn btn-default mt20 del_row" type="button">行削除</button>
108
+
109
+ </div>
110
+
111
+ </div>
112
+
113
+ <div class="row">
114
+
115
+ <div class="col-md-3 mt15">
116
+
117
+ <button class="btn btn-default" id="add_row" type="button">行追加</button>
118
+
119
+ </div>
120
+
121
+ </div>
122
+
123
+ <script type="text/javascript" src="//code.jquery.com/jquery-3.1.1.min.js"></script>
124
+
125
+ <script type="text/javascript">
126
+
127
+ $(function () {
128
+
129
+ $("#add_row").on('click', function () {
130
+
131
+ var clone = $(".foo > .bar:first").clone();
132
+
133
+ var count = $(".foo > .bar").length;
134
+
135
+ clone.find('input').val('');
136
+
137
+ clone.find('input:eq(0)').prop("name", 'timetable[rows][' + count + '][detail1]');
138
+
139
+ clone.find('input:eq(1)').prop("name", 'timetable[rows][' + count + '][detail2]');
140
+
141
+ $(".foo").append(clone);
142
+
143
+ });
144
+
145
+ });
146
+
147
+ </script>
148
+
149
+ </body>
150
+
151
+ </html>
152
+
153
+ ```