2016-04-16 17 views
-1

Dieser Code soll zwei Benutzereingaben berechnen, indem sie multipliziert werden. Die Ausgabe ist jedoch konsistent 0 anstelle von normalerweise zu erwarten, dh 5 * 5 = 0. Ich bin mir nicht sicher, warum das passiert. Übertrage ich die Variablen nicht korrekt in die Funktion? Ich fühle mich wie ich nicht richtig Wert Verständnis vs. Referenz könnte (ich derzeit Javascript lerne)Warum gibt meine Funktion 0 (Null) aus?

var x = document.getElementById("a").value; 
var y = document.getElementById("b").value; 
var button = document.getElementById("button"); 

button.addEventListener('click', function() { 
    calculator(x,y); 
}, false); 

function calculator(a,b) { 
    var output = a * b; 
    document.getElementById("answer").innerHTML = output; 
    console.log(output); 
} 
+1

Sie den Wert Ihrer Felder erhalten nur einmal, wenn Ihr Skript ausgeführt, wahrscheinlich wenn Ihre Seite geladen ist; Die Felder sind dann leer, daher der Wert 0. Setze den entsprechenden Code ('var x = ...;') in deine Callback-Funktion. – Blackhole

Antwort

2

den Wert capture auslassen, nur die Elemente greifen:

var x = document.getElementById("a"); 
var y = document.getElementById("b"); 

dann die Werte wie die Verwendung Funktionsparameter.

Sie griffen die Werte, wenn sie leer waren und übergaben diese an die Funktion.

DEMO

+1

Vielen Dank! Das war's! Ich schätze es sehr. – crescentfresh

0

Es dass das Skript die Werte als Strings behandelt werden könnte, versuchen ParseInt mit (a) * parseInt (b)

Verwandte Themen