私はより多くの項目を追加できるように、私のFieldList /フォームフィールドを使用してこのようなものを使用:
$(document).ready(function() {
$('#add_another_button').click(function() {
clone_field_list('fieldset:last');
});
});
function clone_field_list(selector) {
var new_element = $(selector).clone(true);
var elem_id = new_element.find(':input')[0].id;
var elem_num = parseInt(elem_id.replace(/.*-(\d{1,4})-.*/m, '$1')) + 1;
new_element.find(':input').each(function() {
var id = $(this).attr('id').replace('-' + (elem_num - 1) + '-', '-' + elem_num + '-');
$(this).attr({'name': id, 'id': id}).val('').removeAttr('checked');
});
new_element.find('label').each(function() {
var new_for = $(this).attr('for').replace('-' + (elem_num - 1) + '-', '-' + elem_num + '-');
$(this).attr('for', new_for);
});
$(selector).after(new_element);
}
ボタンを削除するには、かなりトリッキーになります。
(コードはほとんどの回答からDynamically adding a form to a Django formset with Ajaxに借りた。)
申し訳ありませんが、私は簡単に共有できるコードがありません - 私が使用するJavaScriptがしかしYUI 2に基づいてカスタムフレームワークの一部であり、コアを'cloneNode'を使って行を保持しているコンテナの最後の行をクローンし、適切な正規表現にマッチした子要素の名前を再帰的に変更しました。 –