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

时间:2015-07-02 01:22:24

标签: javascript jquery forms input each

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

所以以虚拟形式:

<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());
    });

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

2 个答案:

答案 0 :(得分:2)

一样映射它们

$('#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>

答案 1 :(得分:1)

您可以执行以下操作:

$('#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 ...