2016-06-25 173 views
-1

的Javascript運行功能只有一次

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))}; 

編輯 -

提交按鈕只能工作一次,我需要刷新頁面才能重新工作,任何想法如何解決這個問題?

回答

0

我創建了一個新的功能,只有如下執行上面的代碼:

function getVals(){ 

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

,並在輸入提交按鈕,我說:

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

你的JavaScript代碼可以減少到一條線:

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

這是足以引發錯誤。問題是.value(),應該是.value。如錯誤消息所示,.value不是一個函數,不能被調用。

+0

老鼠,你*只是*打敗了我;) – developius

+0

@melopomene - 我已經重新編輯了問題,提交按鈕只能工作一次,它需要刷新頁面才能重新工作,我該如何解決這個問題? – 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>