从@Paolo Bergantino回答这个先前的SO问题开始 ,我一直在尝试将表单动态添加到我的表单集中。 但是,新添加的表单似乎以某种方式“链接”到了前一个表单。 因此,单击新表单上的复选框会影响旧表单。 此外,提交后,帖子中仅显示一种形式。 所有其他新添加的组件发生了什么?

addAnother.js

function cloneMore(selector, type) {
    var newElement = $(selector).clone(true);
    var total = $('#id_' + type + '-TOTAL_FORMS').val();
    newElement.find(':input').each(function() {
        var name = $(this).attr('name').replace('-' + (total-1) + '-','-' + total + '-');
        var id = 'id_' + name;

        if ($(this).attr('type') != 'hidden') {
            $(this).val('');
        }
        $(this).attr({'name': name, 'id': id}).removeAttr('checked');
    });
    newElement.find('label').each(function() {
        var newFor = $(this).attr('for').replace('-' + (total-1) + '-','-' + total + '-');
        $(this).attr('for', newFor);
    });
    total++;
    $('#id_' + type + '-TOTAL_FORMS').val(total);
    $(selector).after(newElement);
}

template.html

{% load crispy_forms_tags %}
<script src="{{ STATIC_URL }}js/addAnother.js" type="text/javascript"></script>
<form action="{% url 'databank:register' %}" method="post" enctype="multipart/form-data">

<div class="container">
    <div class="row" style="margin-top: 30px"> 
      <div class="col-md-10 col-md-offset-1">
        {{ dataset_form.media }}
        {% crispy dataset_form %}
        {% crispy facility_form %}
        {% crispy contact_form %}

        {{ author_formset.management_form }}
        {% for form in author_formset.forms %}
        <div class='table'>
          <table class='no_error'>
          {{ form.as_table }}
          </table>
        </div>
        {% endfor %}
        <input type="button" value="Add More" id="add_more">

        {% crispy terms_form %}

      </div>
    </div>
  </div>

  <div class="container">
    <div class="row">
      <div class="col-md-10 col-md-offset-1">
        <a role="button" class="btn btn-lg btn-default" href="{% url 'databank:databank_home' %}">Cancel</a>
        <input type="submit" class="btn btn-lg btn-success pull-right" value="Proceed to Data Upload">
      </div>
    </div>
  </div>
</form>



<script type="text/javascript">
    $('#add_more').click(function() {
        cloneMore('div.table:last', 'service');
    });

#1楼 票数:0

感谢django-users组中的Bill,我能够使用django-dynamic-formset来完成这项工作

  ask by steph translate from so

未解决问题?本站智能推荐:

1回复

使用Ajax在Django中向表单动态添加表单集

如何使用AJAX实施以下用例? 我读过这个问题 ,它是我能找到的最接近用例的问题,但是我仍然不确定如何入门。 用例 我在票证项目的输入文本字段中输入数量编号,例如“ 3”。 输入此值后,下面将显示3个表单集以及一个电子邮件字段。 从概念上讲,我在考虑更改输入值时,加载dja
1回复

如何将Django表单与Ajax集成?

我已经看过很多教程,如何将ajax与django形式集成在一起,但是都非常复杂。 我有一个带有Signup表单的Signup模型和一个类似以下的视图。 models.py 和forms.py views.py 和我的HTML形式看起来像这样 这段代码运行良好,
1回复

如何从Django / AJAX中的表单创建动态表单集

我正在处理包含两种形式的页面。 其中一种形式是常规名称,描述,注释等。第二种形式是两个下拉菜单- Language和Level ,其中Level使用AJAX与Language链接。 我想使此表单在user页面上显示多次。 因此,如果他们填写了Language and Level ,则在
2回复

在Django模板中动态生成动态表单

我有一个Django模板(html文件),它包含一个下拉选择器,该选择器有很多选项。选择每个选项时,浏览器上会显示一个预定义的表单,每个这样的表单都有一个预定义的字段。 例如,在选择关于选项时,表格将为- 在选择教育选项时,表格将为- 现在,实现此功能的最佳方法是什么?
1回复

Jquery模糊方法未对django的表单数据执行任何操作

我正在使用 Django 开发清单应用程序,其中我试图创建一个带有标题和清单项目的模板,对于标题,我使用 Jquery Ajax 在模型表单的帮助下将标题存储在数据库中。 这是我用来传递数据以查看的 JS 和 AJAX 代码 下面是表单的 HTML 片段,我在 JS 中使用的 ID“js_te
1回复

使用Django后端更新BD,并通过Ajax发布表单

鉴于我有我的userPersonalized模型。 这有两个我想通过表单更新的字段,它们在其中输入一个数值,然后执行一个数学运算。 好吧,我希望该数学运算的结果能够根据输入的数值来更新已登录的用户字段。 我正在导入Jquery的库。 通过隐藏的2个输入,我访问了要通过数学运算更新的2
1回复

带有文本和**图像**的 Django 动态表单通过 AJAX [关闭]

关闭。 这个问题需要更加集中。 它目前不接受答案。 想改善
2回复

使用Ajax动态更新Django表单字段选项以获取新的查询集

我是编码和django的新手,我正在努力寻找解决以下问题的方法,我已经找到了我找到的答案。 我正在创建一个包含多个字段的搜索表单 当用户选择第一个字段category (以及在点击搜索之前),我想动态地改变第二个字段sub_category ,以便仅显示相关的值。 我有models