我有一些像这样的输入:
<input name="name1[]" value="1"/>
<input name="name1[]" value="2"/>
<input name="name1[]" value="3"/>
我还有另外一个输入:
<input name="name2" />
我想要name1到name2的输入值。
我试试这个:
$('input[name=name1]').val($('input[name=name2]').val());
答案 0 :(得分:0)
您无法做到这一点,因为每<input/>
只能有一个值。我还没有对此进行测试,但如果你这样做了:
$('<input name="name1[]"/>').val($('input[name=name2]').val()).appendTo('form#foo');
基本上,您可以使用新值创建新的<input/>
,然后在提交之前将其添加到表单中。
答案 1 :(得分:0)
如果我理解正确,您希望<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>
答案 2 :(得分:0)
.val()
与元素出现一起使用时,始终会考虑第一次出现。
要从同一组元素中提取多个值,您需要将.val()
与function
参考:http://api.jquery.com/val/#val-function
$('input[name=name2]').val(function(index,value)
{
$('input[name="name1[]"]').each(function()
{
value += $(this).val();
});
return value;
});