JQUERY:将第一个输入复制到第二个输入(数组输入)

时间:2016-03-16 03:26:21

标签: jquery arrays

我有两个数组输入。我希望他们在关键事件上是平等的。 问题是我不能让每个第一个输入值在每个第二个输入上相等。

JSFIDDLE (此小提琴仅复制第一个输入)

Jquery我用过。 (

  

仅适用于mgr [1]到gm [1]。但未能将mgr [2]复制到gm [2]或mgr 3到gm 3

$(document).ready(function() {
    $("#mgr").keyup(function(){
      $('#gm').val($('#mgr').val());
    }); 
     

});

我也试过这个jquery。 但它将第一个输入值复制到所有第二个输入 的 SEE FIDDLE

$(document).ready(function() {

$('input[name="mgr[]"]').keyup(function(){
   var val = 0;
   $('input[name="mgr[]"]').each(function() {
                val += Number($(this).val());
            });

   $('input[name="gm[]"]').each(function() {
                $(this).val(val);
            });
});

});

我想要什么

Desired Output

3 个答案:

答案 0 :(得分:1)

首先,你应该停止在html,FOREVER中使用相同的ID。你的代码永远不会以它应该的方式工作,你反对惯例。

我设法纠正你的代码以类似方式工作,其中第二个输入是通过第一个输入的索引找到的。

http://jsfiddle.net/guanzo/YBQKz/8/

$('input[name="mgr[]"]').keyup(function(){
   var index = $(this).index('input[name="mgr[]"]')
   $('input[name="gm[]"]').eq(index).val($(this).val());
});

答案 1 :(得分:1)

根据您的HTML结构,此代码可以为您提供帮助。

$(document).ready(function() {
  $("input[type=text]").on("input", function() {
    if($(this).index() / 2 != 0 || $(this).index() == 0) {
      $(this).next().val($(this).val());
    }
  });
});

JSFiddle demo

答案 2 :(得分:0)

关于您遵循的代码的第一个简短说明。 在Jquery中,你有选择器来获取DOM中的元素,这些选择器可以是"。"对于类或"#",对于id属性。

因此,在示例中,jquery函数表示如果单击带有" js-key-up"的元素。 class获取id属性中的值,然后使用此表单'#'搜索具有id属性的元素。 + id +' -in-document' 在你的情况下可以是这样的代码。

<input class="mgr" id="1">
<input class="mgr" id="2">
<input class="mgr" id="3">

<input  id="gm1">
<input  id="gm2">
<input  id="gm3">

$('.mgr').keyup(function (e) {
    var id = $(this).attr('id');
    $('#gm' + id').html($(this).val());
});

我希望它有所帮助。祝你好运!