為什么我的計算器算不對結果?
<!DOCTYPE html>
<html>
?<head>
? <title> 事件</title> ?
? <script type="text/javascript">
? ?function count(){
? ? var x=document.getElementById("txt1").value; ??
? ? //獲取第一個輸入框的值
var y=document.getElementById("txt2").value;//獲取第二個輸入框的值
var z=document.getElementById("select").value; ?//獲取選擇框的值
var r;
switch(z)
{
? ? ? ? ? ?case '+':
? ? ? ?r=x+y;break;
? ? ? ? ? ?case '-':
? ? ? ?r=x-y;break;
? ? ? ? ? ?case '*':
? ? ? ?r=x*y;break;
? ? ? ? ? ?case'/':
? ? ? ?r=x/y;
? ? ? ?//獲取通過下拉框來選擇的值來改變加減乘除的運算法則
? }
? ? ? //設置結果輸入框的值?
document.getElementById('fruit').value = r;
? ?}
? </script>?
?</head>?
?<body>
? ?<input type='text' id='txt1' />?
? ?<select id='select'>
? ? <option value='+'>+</option>
? ? <option value="-">-</option>
? ? <option value="*">*</option>
? ? <option value="/">/</option>
? ?</select>
? ?<input type='text' id='txt2' />?
? ?<input type='button' value=' = ' onclick="count()"/> <!--通過 = 按鈕來調用創建的函數,得到結果-->?
? ?<input type='text' id='fruit' /> ??
?</body>
</html>
2016-07-22
使用parseInt()函數可解析一個字符串,并返回一個整數。
case后面要有break
2016-07-22
你獲取的第一個數和第二個數不是數字類型的 而是字符串類型的,你需要把它轉成數字類型的
2016-07-22
把第一個case改成:
case"+":r=parseInt(x)+parseInt(y);break;
要把字符串用parseInt函數轉成int型才可進行數值的計算,不然只是字符串的加減所以1+1=11