2017-05-07 4 views
-2

Wie berechnet man am besten die Summe der Benutzereingaben eines Arrays und speichert diesen Wert dann als Variable?Die Summe der Benutzereingaben nehmen und als Variable speichern

Ich habe hier eine Funktion, die ein Array aus Benutzereingaben (number4 []) erstellt.

var counter = 1;

var limit = 3; 

function addInput(divName){ 

    if (counter == limit) { 

      alert("You have reached the limit of adding " + counter + " inputs"); 

    } 

    else { 

      var newdiv = document.createElement('div'); 

      newdiv.innerHTML = "Asset($) " + (counter + 1) + " <br><input type='text' name='number4[]'>"; 

      document.getElementById(divName).appendChild(newdiv); 

      counter++; 

    } 

<div class="container7"> 

     <div id ="dynamicInput"> 
     Assets 1($): <INPUT type="text" name="number4[]"> 
     </div> 

     Liabilities 1(%): <INPUT type="text" name="number5"> 

     Result($): <INPUT type="text" name="total1"> 

     <INPUT type="button" style="background-color:#FF8800; border-color:BLACK;" value="Calculate"onclick="javascript:networth()"> 



     <INPUT type="button" style="background-color:#FF8800; border-color:BLACK;" value="Add asset fields"onclick="addInput('dynamicInput');"> 

    </div> 

</FORM> 

Ich habe keinen Code für total1 noch. also im Grunde habe ich das Array, ich brauche nur Hilfe, die Summe zu identifizieren und sie dann als Variable zuzuordnen.

Antwort

0

document.getElementsByName("number4[]") wird ein Array der Elemente kehren Sie

function networth(){ 
    var totNo = document.getElementsByName("number4[]").length; 
    var sum = 0; 

    for(var i=0; i<totNo; i++){ 
     sum += parseInt(document.getElementsByName("number4[]")[i].value); 
     console.log(sum); 
    } 
} 
+0

Vielen Dank dafür insgesamt müssen auf. Wie würden Sie die Summe, die wir gerade berechnet haben, nehmen und dann um eine var = passivs_1 subtrahieren, wenn passivs_1 einen Wert hat? Gibt es eine Möglichkeit, die Summe, die wir gerade berechnet haben, einer Variablen zuzuordnen, so dass wir eine einfache Funktion von sum - liabilities_1 ausführen können? –

+0

Sie müssen die Eingabe für Verbindlichkeiten eine ID geben Dann müssen Sie nur den Wert von ihm mit der ID und do die Mathematik damit und Summe 'var lia = Summe * ((document.getElementById (" Verbindlichkeiten "). Wert)/100); var final = sum-lia; console.log (endgültig); ' – user3219222

0

eine id Ihre Eingabeelemente hinzufügen und verwenden var val1 = document.getElementById ("die ID des Eingangs Sie wollen"). Value // repete für val2 ... mit einer anderen ID und fügen Sie den val Variablen

0

Sie müssen alle Eingabeelemente, die Sie summieren möchten, erhalten. Sie können querySelectorAll verwenden, um alle Elemente mit einem gemeinsamen CSS-Selektor für alle Eingaben zu erhalten, die Sie zusammenfassen möchten. https://www.w3schools.com/jsref/met_document_queryselectorall.asp

Schließlich können Sie die Eingabe in der gleichen Weise mit QuerySelector erhalten, da nur eine gibt es keine Notwendigkeit, die All-Variante zu verwenden. https://www.w3schools.com/jsref/met_document_queryselector.asp

var counter = 1; 
 
var limit = 3; 
 
function networth(){ 
 
    var inputs = document.querySelectorAll("form #dynamicInput input"); 
 
    var networth = 0; 
 
    for (var i = 0; i < inputs.length; i++) { 
 
    networth += parseFloat(inputs[i].value); 
 
    } 
 
    document.querySelector("input[name=total1]").value=networth; 
 
} 
 
function addInput(divName) { 
 
    if (counter == limit) { 
 
    alert("You have reached the limit of adding " + counter + " inputs"); 
 
    } else { 
 
    var newdiv = document.createElement('div'); 
 
    newdiv.innerHTML = "Asset($) " + (counter + 1) + 
 
     " <br><input type='text' name='number4[]'>"; 
 
    document.getElementById(divName).appendChild(newdiv); 
 
    counter++; 
 
    } 
 
}
<form> 
 
    <div class="container7"> 
 

 
    <div id="dynamicInput"> 
 
     Assets 1($):<br> 
 
     <INPUT type="text" name="number4[]"> 
 
    </div> 
 

 
    Liabilities 1(%): 
 
    <INPUT type="text" name="number5"> Result($): 
 

 
    <INPUT type="text" name="total1"> 
 

 
    <INPUT type="button" style="background-color:#FF8800; border-color:BLACK;" value="Calculate" onclick="javascript:networth()" /> 
 

 
    <INPUT type="button" style="background-color:#FF8800; border-color:BLACK;" value="Add asset fields" onclick="addInput('dynamicInput');" /> 
 

 
    </div> 
 

 
</FORM>

Verwandte Themen