2014-01-30 48 views
0

我做了一個簡單的Javascript/HTML計算器,您可以輸入兩位數字並選擇一個操作並解決它 問題是,它總是打印「答案:未定義」和「無效操作」 它的工作,直到我添加選擇操作(這是嚴格另外再)選擇簡單計算器不能正常工作?

這裏是我的代碼

var back = 0; 
var DoIt; 
var operation = document.getElementById("Select").value; 
function add(num1, num2) { 
return num1 + num2; 
} 
function multiply(num1, num2) { 
return num1 * num2; 
} 
function subtract(num1, num2) { 
return num1 - num2; 
} 
function divide(num1, num2) { 
return num1/num2; 
} 
function functions() { 
if (back==0) 
{ 
    var first = document.getElementById("number1").value; 
    var second = document.getElementById("number2").value; 
    first = parseInt(first); 
    second = parseInt(second); 
     if (operation=="Add"||operation=="add") 
     { 
      var DoIt = add(first, second); 
     } 
     else if (operation=="Subtract"||operation=="subtract") 
     { 
      DoIt = subtract(first, second); 
     } 
     else if (operation=="Multiply"||operation=="multiply") 
     { 
      DoIt = multiply(first, second); 
     } 
     else if (operation=="Divide"||operation=="divide") 
     { 
      DoIt = divide(first, second); 
     } 
     else 
     { 
      document.getElementById("Select").value = "Invalid Operation"; 
     } 




    document.getElementById("number1").style.display = 'none'; 
    document.getElementById("number2").style.display = 'none'; 
    document.getElementById("Answer").style.display = 'block'; 
    document.getElementById("Answer").value = "Answer: " + DoIt; 
    document.getElementById("write").value = "Go Back"; 
    back = back+1; 
} 
else 
{ 
    document.getElementById("Answer").style.display = 'none'; 
    document.getElementById("number1").style.display = 'inline'; 
    document.getElementById("number2").style.display = 'inline'; 
    document.getElementById("write").value = "Go"; 
    back = 0; 
} 
} 

HTML

<input id="Answer" placeholder="Answer" class="inputs"> 
<input id="number1" placeholder="First Number" class="inputs"> 
<br /> 
<input id="number2" placeholder="Second Number" class="inputs"> 
<br /> 
<input id="Select" placeholder="Choose An Operation" class="inputs"> 
<p id="Texts">Enter Add, Subtract, Multiply, or Divide.</p> 
<input type="button" id="write" onclick="functions();" value="Go" class="button"> 

回答

0

您必須聲明變量operationDoIt功能functions()內:

function functions(){ 
var operation = document.getElementById("Select").value; 
var DoIt; 
if (back==0) 
// the rest of the function 
} 

,你不應該聲明變量DoIt兩次。所以行var DoIt = add(first, second);應該變成DoIt = add(first, second);

+0

謝謝,做到了,但仍然沒有運氣 – user3247345

+0

請更新您的答案與相關的HTML。 –

+0

我用HTML更新了它 – user3247345