【发布时间】:2011-03-16 02:35:01
【问题描述】:
jQuery 有一个clone() 函数,可以毫无问题地克隆实际表单,但它不会保留已输入到表单中的任何值。
有没有办法解决这个问题?
示例代码将不胜感激。
【问题讨论】:
-
你能提供更多的背景信息吗?快速测试在这里没有问题:jsfiddle.net/meGyg
-
我认为问题在于如果您通过表单更改数据,然后尝试克隆它。分叉你的小提琴:jsfiddle.net/F9aWu 尝试更改表单,然后单击克隆。
-
ya @[nick craver] 的解决方案工作正常,除了 textarea 部分
-
当我们开始直接修改
value和checked等属性时,表单控件的初始表示与DOM不同步。当我们克隆一个节点时,每个 DOM 节点的表示都会被复制,其中不包括对象属性,例如value。一种解决方案是将每个表单控件的相关属性(值、选中、选定)复制到克隆节点中。另一种是在进行更改时修改元素。因此,不要使用 element.val('something'),而是执行 element.setAttribute('value', 'something'),它应该在克隆时找到。