我正在尝试使用cloneNode在JavaScript中的submition之前克隆表单。原始表单具有所选值的答案,但不具有克隆的值。以下是代码。
encodeHTMLCollectionToBase64(document.forms['formen']).submit();
function encodeHTMLCollectionToBase64(form) {
encryptedForm = form.cloneNode(true)
Array.from(encryptedForm).forEach(function(item) {
if (item.childElementCount > 0) {
for(var i=0;i < item.childElementCount;i++) {
item[i].value = btoa(encodeURIComponent(item[i].value));
}
}
else {
item.value = btoa(encodeURIComponent(item.value));
}
});
encryptedForm.style.visibility = 'hidden';
document.body.appendChild(encryptedForm);
return encryptedForm ;
}
经过检查,我发现encryptedForm(克隆形式)对于一个选择元素具有空值,但它在表格中(原始形式)。这是为什么?
我在这里做错了吗?
答案 0 :(得分:0)
表单的选择保存在浏览器中,而不是表单的DOM元素中,因此当您克隆它时,不会复制选择。如果您使用JavaScript管理所有表单元素上的“选定”支柱,则可以复制选择,或者您可以将选择存储在单独的变量中并稍后重新应用。