提交动态生成的表单

时间:2015-03-22 16:59:24

标签: javascript jquery html

我正在创建一个网站,我有一个由Django创建的表单。加载页面后,用户可以通过单击按钮向表单添加文本输入。问题是,当单击提交按钮时,只提交由Django最初创建的文本输入。换句话说,动态添加的额外文本输入不会被提交。

我猜这是因为提交按钮只是&#34;意识到&#34;加载页面时存在的表单元素,而不是动态加载的元素。考虑到这一点,我猜测我需要使用某种Javascript来提交所有表单元素,包括动态添加的表单元素,但我无法弄清楚如何去做。< / p>

我已经尝试过jQuery submit功能,但我真的不知道我应该用它做些什么。任何提示将不胜感激!

编辑:这是一段代码片段,它显示了在将另外两个文本输入动态添加到&#34;来源&#34;之后HTML的样子。

<table>
    <form class="dataInput" action="/foner/116" method="post">
    <input type='hidden' name='csrfmiddlewaretoken' value='YYuqTzXUVosu1s2HD3zS00DpoPwQ7N0k' />
    <tbody class="origin">
        <tr>
            <th>
                <label>Origin:</label>
            </th>
            <td>
                <input id="id_Origin-0" maxlength="200" name="Origin-0" type="text" value="A native of Georgia" /> // PRESENT AT PAGE LOAD
            </td>
            <td>
                <button class="adder origin">+</button> // USER CLICKS THIS TO APPEND MORE TEXT INPUTS TO THE FORM
            </td>
        </tr>
        <tr>
            <th>
            </th>
            <td>
                <input type="text" value="" maxlength="200" name="origin[]"></input> // DYNAMICALLY ADDED
            </td>
        </tr>
        <tr>
            <th>
            </th>
            <td>
                <input type="text" value="" maxlength="200" name="origin[]"></input> // DYNAMICALLY ADDED
            </td>
        </tr>
    </tbody>
    <tr>
        <th>
            <label>Notes:</label>
        </th>
        <td>
            <input class="submitButton" type="submit" value="S" />
        </td>
    </tr>
    </form>
</table>

1 个答案:

答案 0 :(得分:0)

好的,我能够解决问题。我有一个表格正在安排表单的所有文本输入,表格也包含表单本身。事实证明,通过反转它并将表封装在表单内部,所有动态生成的输入都会成功发送。再次感谢那些在上述评论中提供意见的人 - 获得其他意见和帮助总是有帮助的。观点。

所以我的问题是(我知道你不应该在答案中提问,但如果有人想要回答......):我怎么知道这个?如果您使用的是编译语言,那么编译器可能会为您捕获这些内容。这只是你获得经验的东西吗?是否有任何书籍可以帮助我处理这样的基本问题?我发现Web开发非常繁琐且令人沮丧,因为我经常会因为这样的微不足道的错误而长时间挂断,而且我认为它不一定是这样的。我只是不太清楚如何改进。