0

テーブルの最後の行を複製していますが、入力ごとに一意の多次元名が必要です...

    <tr>
<td><input type="text" name='input[1][Name]'></input></td>
<td><input type="text" name='input[1][address]'></input></td>
<td><input type="text" name='input[1][contactInfo]'></input></td>
</tr>

次の行は

<tr>
<td><input type="text" name='input[2][Name]'></input></td>
<td><input type="text" name='input[2][address]'></input></td>
<td><input type="text" name='input[2][contactInfo]'></input></td>
</tr>

...........jquery

  $(".alternativeRow").click(function(){
i=2;
                $("table tr:last").clone().find("input").each(function() {
                    $(this).attr({
                        'id': function(_, id) { return id + i },
                        'name': function(_, name) { return name + i },
                        'value': ''               
                    });
                }).end().appendTo("table");
                i++;
      });
4

2 に答える 2

1

多次元名の場合、名前に明示的なインデックスを付ける必要はありません。直接このように書くことができます。

<input type="text" name='input[][Name]'></input>

サーバー側でフォームデータを受信すると、これは自動的にインデックス番号を取得します。

于 2012-05-28T10:18:30.373 に答える
0
 $(".alternativeRow").click(function(){
i=2;
                $("table tr:last").clone().find("input").each(function() {
                   this.name = this.name.replace(/\[(\d+)\]/, function(){
                        return '[' + i +']';
                    });
                })
                .end().appendTo("table");
                i++;
      });
于 2012-05-29T08:13:01.167 に答える