2016-06-08 102 views
0

我被困在onchange文本框中自動計算。從數據庫中計算陣列數組的javascript數組

我想計算事件onchange從數組數據庫輸入數組。

HTML:

<td class="text-left"><input type="text" name="nilaia[]" id="nilaia" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilaib[]" id="nilaib" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilaic[]" id="nilaic" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilaid[]" id="nilaid" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilaie[]" id="nilaie" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="total[]" id="total" readonly="true" class="form-control"></td> 

JS:

<script type="text/javascript"> 
function hitungtotal() { 

    var i = 0; 
    while (i <= document.getElementsById('total').length) { 

document.getElementById('total').value = parseInt(document.getElementById('nilaia[i]').value) + parseInt(document.getElementById('nilaib[i]').value) + parseInt(document.getElementById('nilaic[i]').value) + parseInt(document.getElementById('nilaid[i]').value) + parseInt(document.getElementById('nilaie[i]').value); 

    i++; 
}  
} 
</script> 
+0

爲什麼你覆蓋'各'nilaia total'值改變? – RomanPerekhrest

+0

這裏已經存在類似的問題 http://stackoverflow.com/questions/13540751/how-get-total-sum-from-input-box-values-using-javascript – zivklen

回答

0

如果你可以改變你輸入的名字相同的名字,你可以試試下面的代碼:

HTML:

<td class="text-left"><input type="text" name="nilaia[]" id="nilaia" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilaia[]" id="nilaib" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilaia[]" id="nilaic" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilaia[]" id="nilaid" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilaia[]" id="nilaie" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="total[]" id="total" readonly="true" class="form-control"></td> 

JS:

function hitungtotal(){ 
    var inputs = document.getElementsByName('nilaia[]'); 
    var sum = 0; 
    for(var i = 0; i<inputs.length; i++){ 
     sum += parseInt(inputs[i].value); 
    } 
    document.getElementById('total').value = sum; 

    } 

小提琴:https://jsfiddle.net/xkuyxbof/

0

試試這個jQuery的答案

$('input[id^="nilai"]').change(function(){ 
     var total = 0; 
     $('input[id^="nilai"]').each(function(){ 
      total+=parseFloat($(this).val()); 
     }); 
     $('#total').val(total); 
}); 

https://jsfiddle.net/2d4cvrwz/

0

試試這個

<p>A function is triggered when the user is pressing a key in the input field.</p> 
<td class="text-left"><input type="text" name="nilai" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilai" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilai" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilai" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" name="nilai" onchange="hitungtotal();" value="0" class="form-control"></td> 
<td class="text-left"><input type="text" id="total" readonly="true" class="form-control"></td> 

<script type="text/javascript"> 
function hitungtotal() { 
    var elems = document.getElementsByName('nilai'); 
    var sum = 0;  
    for(var i =0;i<elems.length;i++){ 
    sum+=parseInt(elems[i].value) 
    } 
document.getElementById('total').value = sum; 

} 
</script>