簡體   English   中英

提交動態生成的表單

[英]Submitting a dynamically generated form

我正在創建一個網站,並且有一個由Django創建的表單。 頁面加載后,用戶可以通過單擊按鈕將文本輸入添加到表單。 問題在於,當單擊“提交”按鈕時,僅最初由Django創建的文本輸入會被提交。 換句話說,動態添加的額外文本輸入不會提交。

我猜這是由於以下事實:提交按鈕僅“知道”頁面加載時存在的表單元素,而不是動態加載的元素。 考慮到這一點,我想我需要使用某種Javascript才能提交所有表單元素,包括動態添加的表單元素,但是我不知道該怎么做。

我已經嘗試過jQuery submit功能,但是我真的不知道該怎么做。 任何提示將不勝感激!

編輯:這是一個代碼段,顯示了另外2個文本輸入已動態添加到“來源”后的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>

好的,我能夠解決問題。 我有一個表,用於安排表單的所有文本輸入,並且該表還包含表單本身。 事實證明,通過將其反轉並將表格包含在表單內,所有動態生成的輸入都將成功發布。 再次感謝在上面的評論中提供意見的人員-征求其他意見和觀點總是很有幫助的。

所以我的問題是(我知道您不應該在答案中提出問題,但萬一有人想回應...):我應該怎么知道的? 如果您使用的是編譯語言,則編譯器可能會為您抓住這一點。 您只是經驗的掌握者嗎? 是否有任何書籍可以幫助我解決此類基本問題? 我發現Web開發非常繁瑣且令人沮喪,因為我經常長時間困擾於這種瑣碎的錯誤,並且我認為它不一定是這種方式。 我只是不太了解如何改進。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM