###前提・実現したいこと
フォーム要素の内側で複数の入力フィールドがあるグループをAddボタンで複製した際に、グループ内の入力フィールドには同じカウントを付与したいです。
以上、ご確認の程、よろしくお願い申し上げます。
###発生している問題・エラーメッセージ
Addボタンをクリックした際に、グループ全ての番号が書き換わります。
###該当のソースコード
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> </head> </head> <body> <div> <form name="multi" method="put" action=""> <table id="tbl1"> <tbody> <tr> <td><input type="text" name="user_1"></td> <td><input type="text" name="email_1"></td> <td><span class="add">Add</span></td> </tr> </tbody> </table> <p>count:<input type="text" id="cnt" name="cnt" value="1"> </form> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script type="text/javascript"> $(function() { var tbl = $("#tbl1"); var row = tbl.find("tr:first-child").clone(true) .append("<td><span class='delete'>Delete</span></td>"); tbl.on("click", "span.add", function(){ tbl.find("tbody").append(row.clone(true)); adjust(); }).on("click", "span.delete", function(){ $(this).parent().parent("tr").remove(); adjust(); }); function adjust(){ var inp = $("#tbl1 input"); inp.each(function(i, e){ $(e).attr("name", "user_" + (i+1)); $(e).attr("name", "email_" + (i+1)); }); $("#cnt").attr("value", inp.length); } }); </script> </body> </html>
回答2件
あなたの回答
tips
プレビュー