2016-08-18 71 views
-1

我想用html和JavaScript編寫一個簡單的計算器,但2 + 2的結果不是4,而是22,請幫助我解決這個問題! 謝謝!HTML和Javascript(正在添加)

<html> 
<body> 
<input type ="text" id ="x"> 
<p> + </p> 
<input type ="text" id ="y"> 

<script> 
function adder(a,b){ 

var x = document.getElementById("x").value; 
var y = document.getElementById("y").value; 

document.getElementById("demo").innerHTML = x+y; 


} 

</script> 

<button type = "button" onclick = "adder(x,y)"> calculate </button> 

<p id = "demo"> </p> 

</body> 
</html> 
+0

否決了'Bug' –

回答

0

略微增加ASDFGerte的答案,你需要的元素x和y爲整數轉換,因爲通過ID獲取元素返回一個字符串,要做到這一點,你可以使用parseInt函數

var x = parseInt(document.getElementById("x").value); 
var y = parseInt(document.getElementById("y").value); 
1

你沒有添加數字,而是字符串,這意味着串聯。

他們首先轉換爲數字:

<html> 
 
<body> 
 
<input type ="text" id ="x"> 
 
<p> + </p> 
 
<input type ="text" id ="y"> 
 

 
<script> 
 
function adder(a,b){ 
 
    var x = Number(document.getElementById("x").value); 
 
    var y = Number(document.getElementById("y").value); 
 

 
    document.getElementById("demo").innerHTML = x+y; 
 
} 
 
</script> 
 
<button type = "button" onclick = "adder(x,y)"> calculate </button> 
 
<p id = "demo"> </p> 
 
</body> 
 
</html>

注意這不包括錯誤的情況下,處理輸入不能被轉換爲數字。

+0

我以爲.value已經將它設置爲一個數字。那麼.value是什麼意思? –

+0

@YufeiLiu'HTMLInputElement.value是一個表示控件當前值的DOMString。注意:對於某些輸入類型,返回的值可能與用戶輸入的值不匹配。例如,如果用戶將一個非數字值輸入到中,則返回的值可能是一個空字符串。該說明已經提示如何限制可能的輸入。請參閱[HTMLInputElement](https://developer.mozilla.org/en/docs/Web/API/HTMLInputElement) – ASDFGerte

+0

非常感謝! –