使用 jQuery/Javascript 将多个输入字段复制到其他匹配的输入字段

Copy multiple input fields to other matching input fields with jQuery/Javascript

我有一个虚拟表单和实际表单,在某些时候我想将所有输入值从虚拟表单复制到真实表单。 虚拟字段将与真实表单具有相同的名称(因此我可以匹配它们)。

所以在虚拟形式中:

<input name="item1" value="field1" />
<input name="item2" value="field1" />
<input name="item3" value="field1" />

并且在实际形式中:

<input name="item1" value="" />
<input name="item2" value="" />
<input name="item3" value="" />

我假设我需要以虚拟形式迭代每个输入(使用 jQuery .each() ?),同时在 JS 对象中收集名称和值。 然后以真实形式遍历每个输入,将名称匹配为选择器并设置值(也许这可以在一个 .each() 函数中完成???)

我从下面的代码开始,它只将值(和索引)抓取到一个数组中,但是因为我需要两个值(名称和值,索引是不相关的)我假设我需要一个对象不是数组,但真的不确定从哪里开始。

var inputValues = [];
    $("#dummyForm input").each(function() {
        inputValues.push($(this).val());
    });

非常感谢任何帮助或建议。

像这样映射它们

$('#DummyForm [name]').each(function() {
  var name = $(this).attr('name');
  $('#RealForm [name="' + name + '"]').val($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<form id="DummyForm">
  <input name="item1" value="field1" />
  <input name="item2" value="field2" />
  <input name="item3" value="field3" />
</form>
<form id="RealForm">
  <input name="item1" value="" />
  <input name="item2" value="" />
  <input name="item3" value="" />
</form>

您可以执行如下操作:

$('#dummy input').each(function(){
    if($('#real input[name='+$(this).prop('name')+']').length == 1)
        $('#real input[name='+$(this).prop('name')+']').val($('#dummy input[name='+$(this).prop('name')+']').val())
});

这是我的 Fiddle...