2017-04-04 140 views
2

如何使用属性name =“data []”添加值,并将结果输入到属性name="total_data"如何在jquery中添加多个值?

当在数据1,数据2等中键入输入时,结果将显示在总数据中。 如果我在数据1中键入值1并在数据2中键入数值3,则总数据将显示数值4.如何做到这一点?

<input name="data[]" type="number" class="input-data" value="" placeholder="data 1" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 2" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 3" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 4" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 5" /><br><br> 
 
<input name="total_data" type="number" class="input-data" value="" placeholder="Total Data" />

+3

[总和jQuery中的文本框的列表](// stackoverflow.com/q/2171597)和[jQuery的计算值的总和在所有文本字段(// stackoverflow.com/q/2417553) – Tushar

回答

2

你可以像下面: -

$('input[name="data[]"]').change(function(){ 
 
    var total = 0; 
 
    $('input[name="data[]"]').each(function(){ 
 
    if($(this).val() !==''){ 
 
     total +=parseInt($(this).val()); 
 
     } 
 
    
 
    }); 
 
    $('input[name="total_data"]').val(total); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 1" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 2" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 3" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 4" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 5" /><br><br> 
 
<input name="total_data" type="number" class="input-data" value="" placeholder="Total Data" />

注: - 您可以使用keyup()也代替change()

+0

谢谢,多数民众赞成在工作得很好..我把替换功能键控功能 –

+0

@silviazulinka是的,你可以做到这一点。我刚刚发布了一种方法来做到这一点。很高兴帮助你 –

2

尝试以下方式:

$('.input-data').change(function(){ 
 
    var inputs = document.querySelectorAll('.input-data'); 
 
    var total = 0; 
 
    inputs.forEach(function(node, index){ 
 
     if(node.value != ""){ 
 
      total += parseInt(node.value); 
 
     } 
 
    }); 
 
    document.getElementsByClassName('input-data-total')[0].value = total; 
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 1" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 2" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 3" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 4" /><br><br> 
 
<input name="data[]" type="number" class="input-data" value="" placeholder="data 5" /><br><br> 
 
<input name="total_data" type="text" class="input-data-total" value="" placeholder="Total Data" />

1

使用一个jquery函数如下面和调用该函数的电平变化的数据[]输入事件。代码从存储器写入,而不是测试

function doTotal(){ 
    var total=0; 
    $("input[name='data[]']").each(function(){ 
     total+=$(this).val(); 
    }); 

    $("input [name='totalData']").val(total); 
} 
0

据jQuery的文件建立kaypress您可以通过每一个按键做。

$('input[name="data[]"]').keypress(function(){ 
    var sum = 0; 
    $('input[name="data[]"]').each(function(){ 
    if($(this).val() !==''){ 
     sum +=parseInt($(this).val()); 
     } 

    }); 
    $('input[name="total_data"]').val(sum); 

});