JavaScriptを使って、フォームの記入欄を動的に追加する(少し修正)
はじめまして、プログラミング初心者です。
質問の書き方に至らない点があると思いますが、ご指導お願いいたします。
JavaScriptを使って、フォームの記入欄を動的に追加,削除しようとしています。
発生している問題・エラーメッセージ
複製したinputタグに数字を振りたいのですが、うまくいきません。
追加ボタンを押すとname属性の値の数字[0]が増えて行くようにしたいのですが、常に[1]となってしまいます。
該当のソースコード
html
1<div class="foo"> 2 <div class="form-inline row mt10 bar" > 3 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][0][detail1]" value="" ></div> 4 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][0][detail2]" value="" ></div> 5 <button class="btn btn-default mt20 remove_row" type="button">行削除</button> 6 </div> 7</div> 8<div class="row"> 9 <div class="col-md-3 mt15"> 10 <button class="btn btn-default" id="add_row" type="button">行追加</button> 11 </div> 12</div>
javascript
1$(document).on("click", "#add_row", function () { 2 var target = $('.bar:last-child') 3 target.clone(true).appendTo('.foo'); 4 $('.bar:last-child input').each(function(){ 5 $(this).val(''); 6 count = $('.bar').length-1; 7 $(this).attr('name',$(this).attr('name').replace('0',count)); 8 }); 9 $( '.foo' ).on( 'click', '.remove_row', function() { 10 if($('.bar').length > 1){ 11 $( this ).parents( '.bar' ).remove(); 12 } 13 }); 14 });
試したこと
行追加ボタンを押したコードの結果
html
1<div class="foo"> 2 <div class="form-inline row mt10 bar" > 3 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][0][detail]" value="" ></div> 4 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][0][detail]" value="" ></div> 5 <button class="btn btn-default mt20 remove_row" type="button">行削除</button> 6 </div> 7 <div class="form-inline row mt10 bar" > 8 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][1][detail]" value="" ></div> 9 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][1][detail]" value="" ></div> 10 <button class="btn btn-default mt20 remove_row" type="button">行削除</button> 11 </div> 12 <div class="form-inline row mt10 bar" > 13 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][1][detail]" value="" ></div> 14 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][1][detail]" value="" ></div> 15 <button class="btn btn-default mt20 remove_row" type="button">行削除</button> 16 </div> 17<div class="form-inline row mt10 bar" > 18 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][1][detail]" value="" ></div> 19 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][1][detail]" value="" ></div> 20 <button class="btn btn-default mt20 remove_row" type="button">行削除</button> 21 </div> 22</div> 23<div class="row"> 24 <div class="col-md-3 mt15"> 25 <button class="btn btn-default" id="add_row" type="button">行追加</button> 26 </div> 27</div>
期待する結果
html
1<div class="foo"> 2 <div class="form-inline row mt10 bar" > 3 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][0][detail1]" value="" ></div> 4 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][0][detail2]" value="" ></div> 5 <button class="btn btn-default mt20 remove_row" type="button">行削除</button> 6 </div> 7 <div class="form-inline row mt10 bar" > 8 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][1][detail1]" value="" ></div> 9 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][1][detail2]" value="" ></div> 10 <button class="btn btn-default mt20 remove_row" type="button">行削除</button> 11 </div> 12 <div class="form-inline row mt10 bar" > 13 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][2][detail1]" value="" ></div> 14 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][2][detail2]" value="" ></div> 15 <button class="btn btn-default mt20 remove_row" type="button">行削除</button> 16 </div> 17<div class="form-inline row mt10 bar" > 18 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][3][detail1]" value="" ></div> 19 <div class="col-md-3 mt10"><input type="text" class="form-control text-right" name="timetable[rows][3][detail2]" value="" ></div> 20 <button class="btn btn-default mt20 remove_row" type="button">行削除</button> 21 </div> 22</div> 23<div class="row"> 24 <div class="col-md-3 mt15"> 25 <button class="btn btn-default" id="add_row" type="button">行追加</button> 26 </div> 27</div>
JavaScriptの中にある変数countを、console.logで確認してみたのですが、変数countは期待通り値が1ずつ増えていました。
どこが問題なのか解らないので、ご指導お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/16 13:53
退会済みユーザー
2018/07/16 13:55
2018/07/16 13:57
2018/07/16 15:06