2016-06-11 11 views
0

Here i drei Felder haben und während Sie die Werte in zwei Feldern die Summe dieses Wertes Zugabe sollte in das dritte Feld eingeben, sondern hier die Summenfunktion nicht wird immer hier ist mein CodeErgebnis nicht auf das Gebiet immer in

<script type="text/javascript"> 
    $(document).ready(function() { 

    var balanceamount = $("#balance").val(); 
    var actual_amount = $("#total_amount").val(); 
    var total_balance = $("#totalbalance").val(); 

     $("#amount").keyup(function() 
     { 
     var amount = $("#amount").val(); 
     var total_balance = $("#totalbalance").val(); 
     var total_amount = total_balance + amount; 
     alert(total_amount); 
     $("#total_amount").val(total_amount.toFixed(2)); 

    }); 
    }); 
</script> 
+2

ok also was macht der 'codeigniter' tag hier? –

+0

bitte fügen Sie Ihre HTML auch zum besseren Verständnis hinzu. deklarieren Sie auch Variable mit dem gleichen Namen 'actual_amount' &' total_balance' zweimal warum? –

+0

Haben Sie zumindest verkettete Werte oder nichts? Wenn Sie verkettete Werte haben, bedeutet dies, dass Ihre Variablen Zeichenfolgen sind und Sie sie mit der JavaScript-Funktion parseInt() ([JavaScript parseInt() Function] (http://www.w3schools.com/jsref/jsref_parseint) in Ganzzahlen konvertieren müssen .asp)) –

Antwort

1

Sie müssen parseFloat() alle Werte ...

<script type="text/javascript"> 
    $(document).ready(function() { 

     var balanceamount = parseFloat($("#balance").val()); 
     var actual_amount = parseFloat($("#total_amount").val()); 
     var total_balance = parseFloat($("#totalbalance").val()); 

     $("#amount").keyup(function() 
     { 
      var amount = parseFloat($("#amount").val()); 
      var total_balance = parseFloat($("#totalbalance").val()); 
      var total_amount = total_balance + amount; 
      alert(total_amount); 
      $("#total_amount").val(total_amount.toFixed(2)); 

     }); 
    }); 
</script> 
1

dies versuchen. Ich denke, Sie sollten parseInt() verwenden, um die Werte in int zu konvertieren. Überprüfen Sie auch, ob ein Feld eine leere Zeichenfolge enthält oder nicht, um eine korrekte Zusammenfassung zu erhalten.

$("#amount").keyup(function() { 
     var amount = $("#amount").val() == '' ? 0 : parseFloat($("#amount").val()); 
     var total_balance = $("#totalbalance").val() == '' ? 0 : parseFloat($("#totalbalance").val()); 
     var total_amount = total_balance + amount; 
     alert(total_amount); 
     $("#total_amount").val(total_amount.toFixed(2)); 

    }); 
+0

Aber es kann Dezimalpunkt enthalten, daher meiner Meinung nach ... 'parseFloat' sollte verwendet werden ... – shramee

+0

Siehe, dass er' total_amount.toFixed (2) 'was deutlich anzeigt, dass er den Dezimalpunkt zulassen will. – shramee

+0

Überprüfen Sie meine Antwort aus http://stackoverflow.com/questions/37761219/result-not-getting-in-to-the-field/37761305#37761305 – shramee

1

Eingabewerte sind Strings, so dass, wenn Sie dies durchzuführen:

 var total_amount = total_balance + amount; 

... Sie Strings werden verkettet, und auch die toFixed Methode ist nicht für Strings definiert.

Der schnellste Weg, um Ihre Eingabewerte in Zahlen zu umwandeln ist durch die einheitliche Plus mit:

 var total_amount = +total_balance + +amount; 

Beachten Sie, dass Sie vielleicht Ihre Eingabe zu bestätigen. Sie könnten auch number Typ input Tags verwenden:

<input id="amount" type="number"> 

... dann wird value numerisch sein (falls gültig).

Verwandte Themen