2017-12-06 4 views
0

Ich versuche, die Gesamtmenge von Eingabewert mit reinem JavaScript zu erhalten, aber es ist leer. Das Format des Betragswert für jeden Eingang ist als 0.00 folgenSo erhalten Sie den Gesamtwert von Eingaben mit Vanilla Javascript?

PHP

//rest of code 
$i = 0; 
while ($row = mysqli_fetch_array($result)) {$i++; 
    <input id="Amount'.$i.'" name="Amount" value="'.$plan['price'].'" type="text"> 
} 

echo ' <input id="total" name="finalResult" value="" type="text">'; 

JS

function totalResult(){ 
    var arr = document.getElementsByName('Amount'); 
    var total=0; 
    for(var i=0;i<arr.length;i++){ 
     if(parseInt(arr[i].value)) 
      total += parseInt(arr[i].value); 
    } 
    document.getElementById('total').value = total; 
} 
+0

Was ist leer? Können Sie ein Beispiel für den generierten HTML-Code einfügen, der im Browser angezeigt wird? – klugjo

Antwort

1

Verwenden HTML5 Abfrage selctor API querySelectorAll() wie folgt aus:

function totalResult(){ 
 
    var arr = document.querySelectorAll('input[name=Amount]'); 
 
    var total=0; 
 
    arr.forEach(function(item){ 
 
     if(parseInt(item.value)) 
 
      total += parseInt(item.value); 
 
    }); 
 
    document.getElementById('total').value = parseFloat(total).toFixed(2); 
 
} 
 
totalResult();
<input id="Amount1" name="Amount" value="10.00" type="text" /> 
 
<input id="Amount2" name="Amount" value="20.00" type="text" /> 
 
<input id="Amount3" name="Amount" value="30.00" type="text" /><br> 
 
Result: 
 
<input id="total" name="finalResult" value="" type="text">

+0

Außerdem benötigen Sie 'parseFloat' anstelle von' parseInt', da das Eingabewertformat als '0.00' bezeichnet wird. – KKK

+0

@KKK: Danke, dass Sie darauf hingewiesen haben. – Clark

+0

@KKK, danke für den Punkt. Die Antwort wurde aktualisiert. – Mamun

Verwandte Themen