我有一些类似如下的输入:
<input name="name1[]" value="1"/>
<input name="name1[]" value="2"/>
<input name="name1[]" value="3"/>
我有另一个类似的输入:
<input name="name2" />
我想要在name2中输入name1的值。
我试试这个:
$('input[name=name1]').val($('input[name=name2]').val());
发布于 2016-08-09 20:55:32
您不能这样做,因为每个<input/>
只能有一个值。我还没有测试过这个,但是如果你测试了呢:
$('<input name="name1[]"/>').val($('input[name=name2]').val()).appendTo('form#foo');
实际上,您可以使用新值创建一个新的<input/>
,并在提交之前将其添加到表单中。
发布于 2016-08-09 21:17:24
如果我理解正确的话,您希望<input name="name2" />
始终使用其他输入中包含的值进行更新。
如果是这种情况,您可以执行以下操作:
$(function () {
$('input[name^=name1]').on('input', function(e) {
var txt = $('input[name^=name1]').map(function(index, element) {
return this.value;
}).get().join(', ');
$('input[name="name2"]').val(txt);
}).first().trigger('input');
});
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<form>
<input name="name1[]" value="1"/><br>
<input name="name1[]" value="2"/><br>
<input name="name1[]" value="3"/><br>
<input name="name2" /><br>
</form>
如果你需要相反的东西:
$(function () {
$('input[name="name2"]').on('input', function(e) {
$('input[name^="name1"]').val(function(index, value) {
return value + e.target.value;
});
});
});
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<form>
<input name="name1[]" value="1"/><br>
<input name="name1[]" value="2"/><br>
<input name="name1[]" value="3"/><br>
<input name="name2" />
</form>
发布于 2016-08-09 21:18:26
当与元素的匹配项一起使用时,.val()
将始终考虑第一个匹配项。为了从同一组元素中提取多个值,您需要使用带有function
的.val()
参考:http://api.jquery.com/val/#val-function
$('input[name=name2]').val(function(index,value)
{
$('input[name="name1[]"]').each(function()
{
value += $(this).val();
});
return value;
});
https://stackoverflow.com/questions/38860215
复制