使用 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...
我有一个虚拟表单和实际表单,在某些时候我想将所有输入值从虚拟表单复制到真实表单。 虚拟字段将与真实表单具有相同的名称(因此我可以匹配它们)。
所以在虚拟形式中:
<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...