2016-10-06 11 views
1

現在、送信ボタンを押すと、if else文が変更されます。プログラムはすぐに両方を行うべきではありません。私が現在submitボタンを押すと、if else文が変更されます。プログラムはすぐに両方を行うべきではありません。私が現在submitボタンを押すと、if else文が変更されます。プログラムはそれで働かなければならない、あなたはつもりだそうonce.`JS Elseエラーの場合

  var image_tracker='p'; 
      function change(){ 
       var image = document.getElementById('operator'); 
       if(image_tracker=='p'){ 
       image.src = "images/mult.png" 
       image_tracker='m'; 
        var val1 = parseInt(document.getElementById("value1").value); 
        var val2 = parseInt(document.getElementById("value2").value); 
        var val3 = parseInt(document.getElementById("value3").value); 
        var val4 = parseInt(document.getElementById("value4").value); 
        var val5 = parseInt(document.getElementById("value5").value); 
        var ansD = document.getElementById("answer"); 
        ansD.value = val1 * val2 * val3 * val4 * val5; 
       }else{ 
        image.src='images/plus.png' 
        image_tracker='p'; 
        var ansD = document.getElementById("answer"); 
        ansD.value = val1 + val2 + val3 + val4 + val5; 

       } 
      } 
    </script> 
    <body> 
    <div class="form"> 
    <input type="text" id="value1" name="value1" value=""/> 
     <div class= value1> 
     <p>You are entering the 1st Number</p> 
     </div> 
    <input type="text" id="value2" name="value2" value=""/> 
     <div class= value2> 
     <p>You are entering the 2nd Number</p> 
     </div> 
    <input type="text" id="value3" name="value3" value=""/> 
     <div class= value3> 
     <p>You are entering the 3rd Number</p> 
     </div> 
    <input type="text" id="value4" name="value4" value=""/> 
     <div class= value4> 
     <p>You are entering the 4th Number</p> 
     </div> 
    <input type="text" id="value5" name="value5" value=""/> 
     <div class= value5> 
     <p>You are entering the 5th Number</p> 
     </div> 
    <br/> 
    <input type="button" name="submit" value="Submit"   onclick="javascript:change()"/> 
    <br/> 
    <img src="images/plus.png" alt="operator" id= "operator" onclick="change()">  
    <br/> 
    <input type="label" id="answer" name="answer" value=""/> 
</div> 

+0

私の混乱...しかし、画像とボタンの両方をクリックすると計算が実行され、シンボルが変更されますか?それらの機能を分離してはいけません(つまり、画像をクリックするとシンボルが変わり、ボタンをクリックすると機能が実行されます)。 とにかく、ボタンをクリックすると結果としてNaNが得られます。それはあなたが得ているものですか?あなたが何を得ているのか分かりません(正確な問題)。 – Hill

+0

質問をして回答があったときは元の質問を編集しないでください。このサイトはQ&Aの参考用です。将来誰かがあなたと同じ問題を抱えているかもしれません。そのように具体的なもの)、元の質問を残しておけば他人を助けるかもしれない。 –

+0

'value1'、' value2'、...、 'valueX'、変数' val1'、 'val2'、...、' valN'のidsを持っていれば、間違ったことをしています。 –

答えて

0

で両方を行うが、This Fiddle試みるべきではありません:あなたは2つの異なる機能を必要とする

まず、さまざまなタスクを実行します。

計算を実行する人注:同じ要素を使用しているため、両方のif節に「vals」を割り当てる必要はありません。あなただけテストすることができますので、あなたはまた、pおよびまたはm変数を必要としないimgさんsrc場所:で、その後

function changeIcon() { 
    var image = document.getElementById('operator'); 
    if (image.getAttribute("src") == "~/images/mult.png") { 
     image.src = "~/images/plus.png"; 
    } else { 
     image.src = "~/images/mult.png"; 
    } 
} 

function calculateMe() { 
    var image = document.getElementById('operator'); 
    var val1 = parseInt(document.getElementById("value1").value); 
    if (isNaN(val1)) { val1 = 0; } 
    var val2 = parseInt(document.getElementById("value2").value); 
    if (isNaN(val2)) { val2 = 0; } 
    var val3 = parseInt(document.getElementById("value3").value); 
    if (isNaN(val3)) { val3 = 0; } 
    var val4 = parseInt(document.getElementById("value4").value); 
    if (isNaN(val4)) { val4 = 0; } 
    var val5 = parseInt(document.getElementById("value5").value); 
    if (isNaN(val5)) { val5 = 0; } 
    var ansD = document.getElementById("answer"); 
    if(image.getAttribute("src") == "~/images/mult.png") { 
     ansD.value = val1 * val2 * val3 * val4 * val5; 
    } else { 
     ansD.value = val1 + val2 + val3 + val4 + val5; 
    } 
} 

そして、もう一つは、画像を変更するにはあなたのHTMLは、個々の要素の異なる機能を呼び出すだけです:

<input type="button" name="submit" value="Submit" onclick="calculateMe()"/> 
<img src="~/images/plus.png" alt="operator" id= "operator" onclick="changeIcon()"> 

あなたはplにする必要があります画像の場所と正確なURLがありますが、それは要点です。