2017-04-02 87 views
0

在文本字段中,您需要指定值並通過按鈕對它們進行計數。我不明白爲什麼不這麼認爲?你需要通過一個開關來實現它的原則,但我不明白爲什麼操作不計算在內:+, - ,*,/JavaScript上的計算器(簡單)

<p> 
    <label for="text1">FirstNum</label> 
    <input type="text" id="text1"><br> 
    <label for="operation">Operation</label> 
    <input type="text" id="operation"><br> 
    <label for="text2">SecondNum</label> 
    <input type="text" id="text2"><br> 
    <label for="text3">Result</label> 
    <input type="text" id="text3"><br><br> 
    <input type="button" value="ClickResult" onclick="Calc()"> 
</p> 

<script> 

    function Calc(operation) { 
    //var op; 
    switch(operation) { 
     case '+': 
     text3.value = text1.value + text2.value; 
     break; 
     case '-': 
     text3.value = text1.value - text2.value; 
     break; 
     case '/': 
     text3.value = text1.value/text2.value; 
     break; 
     case '*': 
     text3.value = text1.value * text2.value; 
     break; 
    }  
} 

</script> 
+0

1.我認爲你需要澄清你的問題,因爲我發現它目前還不清楚。 2.顯示'Calc'的示例輸入。 3.「價值」字段通常是字符串。你需要將它們解析爲數字,然後纔可以對它們進行數學運算 – Carcigenicate

回答

0

你需要得到文本框的值,就像這樣:

var text1 = document.getElementById('text1').value; 

但你得到的值是字符串格式,所以你需要將其轉換爲整數或浮點數,所以你必須把它強制轉換爲整數或浮點數,像這樣:

text1 = parseFloat(text1); 

,然後給出的價值結果框似è這樣:

document.getElementById('text3').value = result of the calculation 

或另一種方式是:

var result = document.getElementById('text3'); 
result.value = result of computation 

<p> 
 
    <label for="text1">FirstNum</label> 
 
    <input type="text" id="text1"><br> 
 
    <label for="operation">Operation</label> 
 
    <input type="text" id="operation"><br> 
 
    <label for="text2">SecondNum</label> 
 
    <input type="text" id="text2"><br> 
 
    <label for="text3">Result</label> 
 
    <input type="text" id="text3"><br><br> 
 
    <input type="button" value="ClickResult" onclick="Calc()"> 
 
</p> 
 
     
 
<script> 
 

 
    function Calc() { 
 
    var text1 = document.getElementById('text1').value; 
 
    var text2 = document.getElementById('text2').value; 
 
    var operation = document.getElementById('operation').value; 
 
    var text3 = document.getElementById('text3'); 
 
    text1 = parseFloat(text1); 
 
    text2 = parseFloat(text2); 
 
    //var op; 
 
    switch(operation) { 
 
     case '+': 
 
     text3.value = text1 + text2; 
 
     break; 
 
     case '-': 
 
     text3.value = text1 - text2; 
 
     break; 
 
     case '/': 
 
     text3.value = text1/text2; 
 
     break; 
 
     case '*': 
 
     text3.value = text1 * text2; 
 
     break; 
 
    } 
 

 
    } 
 
    
 
</script>

+0

當你只需要將一個字符串強制爲一個數字時,就不需要'parseFloat()''so'text1 = parseFloat(text1)'可能只是'text1 = + text1'。一般來說,我建議避免'parseInt()'或'parseFloat()',因爲JavaScript中的所有數字都是遵循[IEEE 754](http://en.wikipedia.org/wiki/IEEE_754)標準的浮點數。有'parseInt()'和'parseFloat()'的用例,但這不應該是其中之一。 – spex

+0

@spex謝謝你的信息,可能你是正確的,我重做parseFloat到+ text1和+ text2 –