2016-06-25 17 views
-1

DieJavascript läuft Funktion nur einmal

HTML

<p>What factorial would you want to calculate?</p> 
<input id="factorium" type="number"> 
<input id="submission" type="submit" value="Calculate"> 

Javascript

function factorial(x) { 
    if (x === 0) { 
     return 1; 
    } 
    return x * factorial(x - 1); 
} 

    var inputBox = document.getElementById('factorium').value; 
    var submission = document.getElementById('submission'); 
    submission.onclick = function(){console.log(factorial(inputBox))}; 

Herausgegeben -

Der Submit-Button funktioniert nur einmal, ich muss die Seite aktualisieren, damit sie wieder funktioniert, eine Idee, wie Sie das beheben können?

Antwort

0

habe ich eine neue Funktion, die den obigen Code wird nur ausgeführt, wie folgt:

function getVals(){ 

    var inputBox = document.getElementById('factorium').value; 
    var submission = document.getElementById('submission'); 
    console.log(factorial(inputBox)); 
} 

und am Eingang Submit-Button ich hinzugefügt haben:

<input id="submission" type="submit" value="Calculate" onclick="getVals()"> 
4

Ihr JavaScript-Code kann auf eine Zeile reduziert werden:

document.getElementById('factorium').value(); 

Dies ist genug, um den Fehler auszulösen. Das Problem ist .value(), das stattdessen .value sein sollte. Wie die Fehlermeldung sagt, ist .value keine Funktion und kann nicht aufgerufen werden.

+0

Ratten, du * prügst mich einfach dazu;) – developius

+0

@melopomene - ich habe die Frage erneut bearbeitet, die abschicken Taste funktioniert nur einmal, es muss Seite für die Arbeit wieder aktualisieren, wie kann ich das beheben? – erezT

0

JS Fiddle Link

<p>What factorial would you want to calculate?</p> 
<input id="factorium" type="number"> 
<input id="submission" type="submit" value="Calculate" onclick="calcFactorial()"> 

<script> 

    function factorial(x) { 
     if (x === 0) { 
      return 1; 
     } 
     return x * factorial(x - 1); 
    } 

     function calcFactorial(){ 
      var inputBox = document.getElementById('factorium').value; 
      var submission = document.getElementById('submission'); 
      console.log(factorial(inputBox)); 
     } 
</script> 
Verwandte Themen