Javascript jQuery-Clone<;部门>;使用表单元素,包括其值
我有一个Django表单集,它有很多表单元素。我有一个创建新空表单的工作方法,但我还需要一个复制表单的解决方案。从技术上讲,所有表格都在一个div中,如下所示:Javascript jQuery-Clone<;部门>;使用表单元素,包括其值,javascript,jquery,html,forms,formset,Javascript,Jquery,Html,Forms,Formset,我有一个Django表单集,它有很多表单元素。我有一个创建新空表单的工作方法,但我还需要一个复制表单的解决方案。从技术上讲,所有表格都在一个div中,如下所示: <form> ... <div class="subform"> ... </div> ... </form> ... ... ... 问题是,在最新的jQuery版本中,html和replaceWith方法不处理输入值,因此它们会创建空表单元素——
<form>
...
<div class="subform">
...
</div>
...
</form>
...
...
...
问题是,在最新的jQuery版本中,html和replaceWith方法不处理输入值,因此它们会创建空表单元素——这不是我需要的行为。当然,我可以实现一个算法,迭代所有元素,复制它们并设置它们的值,但是如果可能的话,我想避免它
我想用复制的值替换现有表单。可以使用和而不是html()
/replaceway()
clone()
将保留
元素的值
属性,甚至可以保留事件处理程序和自定义数据
你可以这样写:
var theForm = $("selector-matching-your-form");
theForm.clone(true).replaceAll(theForm);
弗里德里克有一个绝妙的答案,我花了一段时间才明白。以下是另一个版本: 创建一个引用元素的变量
var someElement=$(“输入#某些元素”)代码>
克隆元素
var cloneOfElement=$someElement.clone(true)代码>
通过使用引用原始元素的变量,使用克隆替换原始元素
cloneOfElement.replaceAll($someElement)代码>
--
从replaceAll()文档中:
“.replaceAll()方法类似于.replaceWith(),但源和目标是相反的。”是否尝试了clone()
而不是html()
/replaceWith()
?它将保留元素的值
属性,甚至可以保留事件处理程序和自定义数据。@FrédéricHamidi我有,这非常有效。这就是我创建新表单的方式。(当然,它也有很多django特有的东西)。但在这种情况下,我必须用新表单替换现有表单。您也可以使用它来复制现有表单yourForm.clone(true).replaceAll(yourForm)
应该可以工作。乍一看,它似乎工作得很好!谢谢你愿意接受赏金吗?