2016-07-30 5 views
-1

私は自分のコードが働いています。私は動作するテキストエリアからの入力を追加しようとしています。しかし変数valuesはすべてのonclickイベントの後にその値を保持しています。Javascriptでイベント後の変数をクリアする

<script type="text/javascript"> 
     var values = ""; 
     var stat = new Object(); 
     stat.sum = "0"; 
     stat.sumSquare = "0"; 
     stat.grabInput = function() { 
      values = "0"; 
      var txtValues = document.getElementById("txtInput"); 
      values = txtValues.value; 
      values = values.split(" "); 
     } 
     stat.adder = function() { 
      for (i=0;i<values.length;i++){ 
       stat.sum=parseFloat(stat.sum)+parseFloat(values[i]); 
      } 
     } 
     stat.squareAdder = function() { 
      for (i=0;i<values.length;i++) { 
       stat.sumSquare=parseFloat(stat.sumSquare)+(parseFloat(values[i])*parseFloat(values[i])); 
      } 
     } 
     stat.showSum = function() { 
      stat.grabInput(); 
      stat.adder(); 
      document.getElementById("answers").innerHTML = "The sum is: "+stat.sum+"<br />"; 
     } 
     stat.showSquareSum = function() { 
      stat.grabInput(); 
      stat.squareAdder(); 
      document.getElementById("answers").innerHTML = "The squared sum is: "+stat.sumSquare; 
     } 
    </script> 
    <form action=""> 
     <fieldset> 
      <textarea id="txtInput" name="txtInput"></textarea> 
      <input type="button" value="Sum" onClick="stat.showSum();" /> 
      <input type="button" value="Square Sum" onClick="stat.showSquareSum();" /> 
     </fieldset> 
     <div id="answers"></div> 
    </form> 

values = "0";が戻って助けを0

のおかげで、それをリセットしないと、なぜ私は知りません!

+0

'values =" 0 ";'は動作していると考えています。最初に 'values'変数を' 0'に設定します... '0 'あなたのコードの後ろに.. – Rayon

答えて

0

Nevermind。私はそれぞれのonclickイベントの後に私がstat.sumstat.sumSquareをリセットしていないことを知りました。

stat.adder = function() { 
      stat.sum = "0"; 
      for (i=0;i<values.length;i++){ 
       stat.sum=parseFloat(stat.sum)+parseFloat(values[i]); 
      } 
     } 
     stat.squareAdder = function() { 
      stat.sumSquare = "0"; 
      for (i=0;i<values.length;i++) { 
       stat.sumSquare=parseFloat(stat.sumSquare)+(parseFloat(values[i])*parseFloat(values[i])); 
      } 
     } 

これは魅力的なように機能します。

0

各onclickでvalue = "0"と宣言しています。なぜそれを保持しているのですか?