首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >可以通过jquery将输入数组传递给另一个输入吗?

可以通过jquery将输入数组传递给另一个输入吗?
EN

Stack Overflow用户
提问于 2016-08-10 04:52:04
回答 3查看 44关注 0票数 0

我有一些类似如下的输入:

代码语言:javascript
代码运行次数:0
运行
复制
<input name="name1[]" value="1"/>
<input name="name1[]" value="2"/>
<input name="name1[]" value="3"/>

我有另一个类似的输入:

代码语言:javascript
代码运行次数:0
运行
复制
 <input name="name2" />

我想要在name2中输入name1的值。

我试试这个:

代码语言:javascript
代码运行次数:0
运行
复制
$('input[name=name1]').val($('input[name=name2]').val());
EN

回答 3

Stack Overflow用户

发布于 2016-08-10 04:55:32

您不能这样做,因为每个<input/>只能有一个值。我还没有测试过这个,但是如果你测试了呢:

代码语言:javascript
代码运行次数:0
运行
复制
$('<input name="name1[]"/>').val($('input[name=name2]').val()).appendTo('form#foo');

实际上,您可以使用新值创建一个新的<input/>,并在提交之前将其添加到表单中。

票数 0
EN

Stack Overflow用户

发布于 2016-08-10 05:17:24

如果我理解正确的话,您希望<input name="name2" />始终使用其他输入中包含的值进行更新。

如果是这种情况,您可以执行以下操作:

代码语言:javascript
代码运行次数:0
运行
复制
$(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');
});
代码语言:javascript
代码运行次数:0
运行
复制
<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>

如果你需要相反的东西:

代码语言:javascript
代码运行次数:0
运行
复制
$(function () {
  $('input[name="name2"]').on('input', function(e) {
    $('input[name^="name1"]').val(function(index, value) {
      return value + e.target.value;
    });
  });
});
代码语言:javascript
代码运行次数:0
运行
复制
<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>

票数 0
EN

Stack Overflow用户

发布于 2016-08-10 05:18:26

当与元素的匹配项一起使用时,.val()将始终考虑第一个匹配项。为了从同一组元素中提取多个值,您需要使用带有function.val()

参考:http://api.jquery.com/val/#val-function

代码语言:javascript
代码运行次数:0
运行
复制
$('input[name=name2]').val(function(index,value)
    {  
      $('input[name="name1[]"]').each(function()
       {
         value += $(this).val();
       });   
       return value;
    });

示例:https://jsfiddle.net/pgyLvx43/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38860215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档