0
如何在不保留字段值的情況下克隆下面的html?如何克隆表單字段沒有它們的值?
<form method=POST action="/url">
<div class="form-group" data-answer>
<div class="pull-left"><label><input type="checkbox" name="answer[1][is_correct]" value="true"> Correct Answer</label></div>
<div class="pull-right">
<a href="#" data-remove><span class="glyphicon glyphicon-remove"></span></a>
</div>
<input type="text" class="form-control" name="answer[1][body]" placeholder="Possible answer">
</div>
<div class="form-group" data-answer>
<div class="pull-left"><label><input type="checkbox" name="answer[2][is_correct]" value="true"> Correct Answer</label></div>
<div class="pull-right">
<a href="#" data-remove><span class="glyphicon glyphicon-remove"></span></a>
</div>
<input type="text" class="form-control" name="answer[2][body]" placeholder="Possible answer">
</div>
. . .
<button type="submit">Submit</button>
</form>
我在這裏只能看到3種可能的選擇。然而,所有這些都與重大缺陷:
.clone()
的.form-field
正常並重新設置字段值。
問題:重新設置所有的值是很麻煩的,而且不是一個面向未來的解決方案。例如,如果更多字段被添加到.form-group
中,則它們的值將需要單獨清除。- 在頁面上包含一個隱藏的
.form-group
作爲模板。
問題:如您所見,輸入字段包含枚舉名稱,如:answer[1][body]
。克隆最後的.form-group
並將值增加1會很方便。克隆模板.form-group
將缺乏這種靈活性。 - 閱讀原始html的字段,並將它們轉換爲JQuery對象
問題:這似乎是一個明確的解決方案,但我無法得到它的工作。代碼$.parseHTML($('.form-group').html())
不返回有效的JQuery對象,我需要使用.find()
和其他方法。
什麼將是這個問題的有效和優雅的解決方案?
?像這樣:'document.getElementById(「myForm」)。reset()'。新添加的字段也將使用此重置。 – Roy
爲什麼這些值需要單獨清理或逐個清理?您可以獲得輸入的集合,並且可以設置它們的值,重置它們的檢查狀態等等,不是嗎? –
帶有reset()的一個潛在的「gotcha」是它不重置其他表單屬性,只是值。這裏可能會有問題,也可能不是問題,但有時會讓人們尷尬。 –