如何在Javascript中复制包含数组的表单元素?

如何在Javascript中复制包含数组的表单元素?,javascript,arrays,forms,Javascript,Arrays,Forms,我想将数组类型元素从一个表单复制到另一个表单。我无法解决的问题是将数组值分配给新元素 在javascript中,这非常有效: document.getElementById(“newName”).value=document.getElementById(“name”).value; 但这并不是: document.getElementsByName(“newName[]”)。value=document.getElementsByName(“name[]”)。value; 我能得到的最接近

我想将
数组类型元素从一个表单复制到另一个表单。我无法解决的问题是将数组值分配给新元素

在javascript中,这非常有效:

document.getElementById(“newName”).value=document.getElementById(“name”).value;
但这并不是:

document.getElementsByName(“newName[]”)。value=document.getElementsByName(“name[]”)。value;
我能得到的最接近的结果是:

 var names = document.getElementsByName('name[]');  // names is a Nodelist
 var array_name = [];
  var i;
  for (i = 0; i < names.length; i++) {
       array_name.push(names[i].value);
                        }
 document.getElementById("newName").value = array_name;
输出:

<form id="destination">
<input type="hidden" id="newName" name="newName[]" value="">
</form>

更新: 我找到了一个解决办法: 虽然
$(表单)
仅允许您访问当前表单,
$('form')
将允许您访问所有表单。无需将数据从一个表单复制到另一个表单。

如下使用:

let names = document.getElementsById('name').value;
document.getElementById("newName").value = names.split(', ');
这将为值字段分配一个名称数组

虽然我不确定这是否可能。我猜表单数组在后台保存为CSV列表,因此以下代码是正确的:

document.getElementById("newName").value = document.getElementsById('name').value;

您始终可以将结果转换为您想要的结果-看起来它是一个包含1个大字符串的数组,因此:

var result = document.getElementById("newName").value;
result = result[0].split(",");
console.log(result);
如果您认为结果中会出现逗号,则可以使用不同的分隔符:

var names = document.getElementsByName('name[]');  // names is a Nodelist
  var array_name = [];
  var i;
  for (i = 0; i < names.length; i++) {
       array_name.push(names[i].value);
       ...
  }
 array_name.join("__");
 document.getElementById("newName").value = array_name; 


var result = document.getElementById("newName").value;
result = result[0].split("__");
console.log(result)
    ...
var name=document.getElementsByName('name[]);//names是一个节点列表
var数组_name=[];
var i;
对于(i=0;i
如果结果包含逗号,则拆分失败。这是一个很好的解决方法。我仍然希望tI能找到一个更简单的解决方案,类似于简单的字符串值。谢谢。同样的问题-如果名称包含逗号,则逻辑将失败。这就是为什么您用逗号将其拆分为以下部分:
names.split(',)
var names = document.getElementsByName('name[]');  // names is a Nodelist
  var array_name = [];
  var i;
  for (i = 0; i < names.length; i++) {
       array_name.push(names[i].value);
       ...
  }
 array_name.join("__");
 document.getElementById("newName").value = array_name; 


var result = document.getElementById("newName").value;
result = result[0].split("__");
console.log(result)
    ...