使用jquery 1.9.1;也许以后的版本不同?
但问题似乎是输入元素恢复到原始值,即使用户已经更改了它们。如果我使用innerHTML在直接的javascript中执行相同的操作,我会遇到同样的问题。问题似乎是html显示defaultValue(对于type = text)或defaultChecked(对于type = checkbox),并且最终将实例化为值或在已修改的子元素中检查。这似乎是一个bug;无论如何,它违反了最不惊讶的原则。
答案 0 :(得分:1)
我的解决方法是执行:
$(element).find('input[type=text]').each(function(i, o) {
o.defaultValue = o.value;
})
和
$(element).find('input[type=checkbox]').each(function(i, o) {
o.defaultChecked = o.checked;
})
在执行$(element).append
或$(element).remove
。