【问题标题】:Submit duplicated forms with one button using Javascript使用 Javascript 一键提交重复的表单
【发布时间】:2014-04-23 16:05:09
【问题描述】:

我有一个表单,点击一个按钮就可以复制它,添加更多。但我面临一次提交所有表格的问题。我正在使用 Django 和 Javascript。 我该如何解决它。

{% extends "base.html" %}
{% load crispy_forms_tags %}

{% block content %}
<div id="content" class="span9">
    {% if form.errors %}
    <div class="alert alert-error">
        <h4>{{ form.errors }}</h4>
    </div>
    {% endif %}
    <div id = "duplicater" class="span9">
        <h1>Add new Profile</h1>   
         <button id="button" class="btn btn-success" onlick="duplicate()">Add more</button> 
    <hr/>

    <form class="form-horizontal ajax" action="{% url 'create_profile' %}" method="post">{% csrf_token %}
    {{ form|crispy}}

        <div class="form-actions">
            <a class="btn ajax" data-spinner="off" href="{% url 'home' %}">Cancel</a>
            <input class="btn btn-primary" type="submit" value="Save"/>
             <hr/>
        </div>
        </form>
    </div>
    </div>

<script type="text/javascript">  
    document.getElementById('button').onclick = duplicate;
    var i = 0;
    var original = document.getElementById('duplicater');

    function duplicate() {
    var clone = original.cloneNode(true); // "deep" clone
    clone.id = "duplicater" + ++i; // there can only be one element with an ID
    original.parentNode.appendChild(clone);
    }
</script>
{% endblock %}

【问题讨论】:

标签: javascript jquery html django forms


【解决方案1】:

您应该将它们全部放在模板中的同一 &lt;form&gt; 元素中。

也就是说,与其将整个表单命名为 duplicater 并进行复制,不如将 {{ form|crispy }} 变量包装在一个名为 duplicater 的 div 中,并将副本附加到其末尾,在单个 &lt;form&gt; 元素内.

【讨论】:

  • 我已经编辑了代码,但是如果我有一个名为“复制器”的 div,那么提交按钮也会被复制,我可以只提交一个表单。
  • 不,现在您已将复制器完全放在表单之外。那根本不是我说的。把它放在一个新的 div only 周围的脆模板标签。
  • 是的,谢谢!我已经筋疲力尽了,所以我一开始没有看到它。
猜你喜欢
  • 2014-10-08
  • 2022-01-09
  • 2014-02-06
  • 2014-01-02
  • 1970-01-01
  • 2016-10-19
  • 2016-03-21
  • 2013-12-27
相关资源
最近更新 更多