2016-09-20 3 views
1

Ich arbeite an einem Money-Management-Programm. Es gibt ein Eingabefeld, in das Sie Ihre Einnahmen eingeben müssen. Immer wenn ich meine Nummer eingebe und auf Enter klicke, erscheint die Nummer auf der Seite, aber wenn ich eine andere Nummer hinzufüge, wird sie nicht korrekt angezeigt.Nummer kann nicht korrekt angezeigt werden

HTML

<!DOCTYPE html> 
<html> 
<head> 
    <!-- Edit title --> 
    <title>Banking App</title> 
    <!-- Stylesheet --> 
    <link rel="stylesheet" type="text/css" href="assets/css/style.css"> 
</head> 
<body> 
<div class="main"> 

    <header> 
     <h1>Bank Account Manager</h1> 
    </header> 

    <div class="displayInfo"> 
     <div class="displayBalance"> 
      <h2 class="displayBalanceTag">Balance: <span class="displayBalanceNumber"></span></h2> 
     </div> 
    </div> 
    <div class="inputInfo"> 
     <center> 
      <input type="text" name="earned" placeholder="How Much Have You Earned?" class="earned"> 
      <input type="text" name="spent" placeholder="How Much Have You Spent?" class="spent"> 
     </center> 
    </div> 

</div> 

<!-- JQuery --> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
<!-- Main.js --> 
<script type="text/javascript" src="assets/js/main.js"></script> 
</body> 
</html> 

JS

// VARIABLES 
var balance; //stores users balance 
var earnings; //stores users earnings 

var earned = $(".earned"); //input users earnings 
var spent = $(".spent"); //input users spendings 
var displayBalanceNumber = $(".displayBalanceNumber"); //displays users balance 

// START 
$("document").ready(function() { 
    balance = 0; 

    init(); 
}) 

// INIT 
function init() { 
    reset(); //resets everything 
    $(earned).bind("keypress", addEarnings); 
} 

function addEarnings(e) { 
    //check for keycode 13 (enter key) 
    if(e.which === 13) { 
     earnings = $(this).val(); //get value from input 
     balance = balance + earnings; 
     displayBalanceNumber.html(balance); 
     displayBalanceNumber.html(balance); 
    } 
} 

// RESET 
function reset() { 
    displayBalanceNumber.html(balance); //make value inside balance holder to 0 
} 
+0

Inwiefern ist es falsch? Welche Zahlen gibst du ein und welches Ergebnis bekommst du? – Mick

+0

^was erwartest du auch zu bekommen? – vlaz

+1

Sollte sein: "earnings = + $ (this) .val();' – adeneo

Antwort

1

Ihre Linie, balance = balance + earnings; sieht earnings als String zurück. Wenn Sie einer Zahl eine Zeichenfolge hinzufügen, wird diese in eine Zeichenfolge konvertiert. Was Sie tun müssen, ist earnings in eine ganze Zahl zu konvertieren. Ersetzen Sie diese Zeile durch balance = balance + +earnings;. Die + konvertiert earnings in eine Nummer.

Verwandte Themen