2016-06-25 14 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

私は次のようにのみ上記のコードを実行し、新しい機能を作成しました:

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

あなたのJavaScriptコードを1行に減らすことができます。

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

これは、エラーを引き起こすのに十分です。問題は.value()です。代わりに.valueにする必要があります。エラーメッセージには、.valueは機能ではなく、呼び出すことができません。

+0

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

、入力時には、私が追加したボタンを提出ラット、あなたはそれに私を打つ;) – 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> 
関連する問題