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”是它不重置其他表单属性,只是值。这里可能会有问题,也可能不是问题,但有时会让人们尴尬。 –